分布式理论基础

一、什么是分布式?

分布式就是计算机之间的分工与合作

例如:对应现实世界中,针对某项任务,我分给一个人干还是一群人干产生的效果也是不同的,一群人干肯定要比一个人干要快的;

和计算机一样,在计算机内部首先要看计算机的内核是几核的,通常有4核、8核、16核等等…核数越多,它的处理能力越强

在就是单进程—多进程/单线程---多进程,处理速度也是不一样的

总而言之,分布式其实就是将一个比较大的数据或任务,让多台电脑同时去做---又叫分而治之!

二、分布式分类及概念

1.分布式操作系统

负责管理分布式处理系统资源和控制分布式程序运行。它和集中式操作系统的区别在于资源管理、进程通信和系统结构等方面。

2.分布式程序设计语言

用于编写运行于分布式计算机系统上的分布式程序。一个分布式程序由若干个可以独立执行的程序模块组成,它们分布于一个分布式处理系统的多台计算机上同时被执行。它与集中式的程序设计语言相比有三个特点:分布性、通信性和稳健性

3.分布式文件系统

具有执行远程文件存取的能力,并以透明的方式对分布在网络上的文件进行管理和存取。

4.分布式数据库系统

由分布于多个计算机节点上的若干个数据库系统组成,它提供有效的存取手段来操纵这些节点上的子数据库。分布式数据库在使用上可视为一个完整的数据库,而实际上它是分布在地理分散的各个节点上。当然,分布在各个节点上的子数据库在逻辑上是相关的。

5.分布式邮件系统

分布式邮件系统由多个数据中心组成,大量分支机构或较小的分散站点与数据中心的连接。分支机构需要建立自己的邮件服务器,来加快处理当地分支机构的邮件。承载相应的数据处理量。以提高邮件处理能力,邮件收发速度,邮件功能模块化。

三、分布式的特点:

1.可以将分布在各处的资源综合利用,而这种利用对用户来说是透明的

2.可以将负载由单个节点转移到多个,从而提高效率

3.分布式技术可以避免由单个节点失效而使整个系统的崩溃。

四、分布式系统的设计理念:

1.分布式系统对服务器硬件要求很低

2.分布式系统强调横向可扩展性

横向可扩展性(ScaleOut)是指通过增加服务器数量来提升集群整体性能。纵向可扩展性(ScaleUp)是指提升每台服务器性能进而提升集群整体性能。

3.分布式系统不允许单点失效

4.分布式系统尽可能减少节点间的通讯开销

5.分布式系统应用服务最好做成无状态的

因为如果应用程序是有状态的,那么一旦服务器宕机就会使得应用服务程序受到影响而挂掉,那么存在内存的数据也就丢失了,这显然不是高可靠的服务。把应用程序服务设计成无状态的,让程序把需要保存的数据都保存在专门的存储上,这样应用服务器程序可以任意重启而不丢失或数据,方便分布式系统在服务器宕机后恢复应用服务。



你可能感兴趣的:(分布式)