分布式技术原理学习笔记一

分布式技术原理学习笔记一

课程来源于极客时间https://time.geekbang.org/column/article/140004,推荐大家购买学习。

单机模式

所有应用程序和数据均部署在一台电脑或服务器上,由一台计算机完成所有的处理。

分布式技术原理学习笔记一

这种模式的好处是功能、代码和数据集中,便于维护、管理和执行。

坏处:单个计算机的处理能力取决于 CPU 和内存等,但硬件的发展速度和性能是有限的,而且升级硬件的性价比也是我们要考虑的,由此决定了 CPU 和内存等硬件的性能将成为单机模式的瓶颈。

游击队模式(数据并行或者数据分布式)

为解决单机模式的问题,并行计算得到了发展,进而出现了数据并行(也叫作数据分布式)模式。并行计算采用消息共享模式使用多台计算机并行运行或执行多项任务,核心原理是每台计算机上执行相同的程序,将数据进行拆分放到不同的计算机上进行计算。

重点是对同一个应用程序的数据拆分到不同的机器上进行并行计算。

1.将数据与应用进行分离

分布式技术原理学习笔记一

2.对数据进行拆分。存至多个机器的数据库上。

分布式技术原理学习笔记一

游击队模式的好处:利用多台计算机并行处理多个请求,可以在相同时间内处理多个请求任务。

需要考虑的问题:

  • 如何将请求分配到不同的服务器上——>负载均衡器

  • 请求量较大时,数据库读写IO频繁——>读写分离。读数据库与写数据库,当然要注意两种分离数据库之间数据同步的问题。

  • 热点数据给单点数据库带来较大的压力——>缓存中间件的使用。

集团军模式:任务并行或者任务分布式

任务并行指的是,将单个复杂的任务拆分为多个子任务,从而使得多个子任务可以在不同的计算机上并行执行。

分布式技术原理学习笔记一

两个核心步骤:首先将单任务拆分成多个子任务,然后让多个子任务并行执行。

这种模式和集团军模式很像,任务拆分者对应领导者,不同子系统对应不同兵种,不同子程序执行不同任务就像不同的兵种执行不同的命令一样,并且运行相同子系统或子任务的计算机又可以组成一个兵团。

任务并行与数据并行的选择建议

一个简单的原则就是:任务执行时间短,数据规模大、类型相同且无依赖,则可采用数据并行;如果任务复杂、执行时间长,且任务可拆分为多个子任务,则考虑任务并行。在实际业务中,通常是这两种模式并用。

总结回顾

,且任务可拆分为多个子任务,则考虑任务并行。在实际业务中,通常是这两种模式并用。

总结回顾

单机模式指的是,所有业务和数据均部署到同一台机器上。这种模式的好处是功能、代码和数据集中,便于维护、管理和执行,但计算效率是瓶颈。也就是说单机模式性能受限,也存在单点失效的问题。数据并行(也叫作数据分布式)模式指的是,对数据进行拆分,利用多台计算机并行执行多个相同任务,通过在相同的时间内完成多个相同任务,从而缩短所有任务的总体执行时间,但对提升单个任务的执行性能及降低时延无效。任务并行(也叫作任务分布式)模式指的是,单任务拆分成多个子任务,多个子任务并行执行,只要一个复杂任务中的任意子任务的执行时间变短了,那么这个业务的整体执行时间也就变短了。该模式在提高性能、扩展性、可维护性等的同时,也带来了设计上的复杂性问题,比如复杂任务的拆分。