1.定义:系统的各组件分布于网络上多台计算机,各组件彼此直接仅仅经过消息传递来通讯并协调行动。前端
简要来讲就是:一个系统的各个组件(包括前端呈现、后端API、中间件(redis等)、数据库.....)分布在网络上的各台主机, 而且各组件之间仅经过消息传递来通讯并协调工做。redis
2.分布式系统与集中式系统相比具备如下一些优势: 数据库
(1)经济:随着微处理机技术的发展,如今人们只需花很少的钱就能买到一个CPU芯片。分布式系统一般就是在一个系统中使用集中在一块儿的大量廉价CPU,能够获得比单个大型集中式系统好的多的性能价格比。 后端
(2)快速:分布式系统因为使用了并行处理技术,所以它总的计算能力比单个的大型集中式系统强不少。 安全
(3)可靠:分布式系统中工做负载都是分散在多台机器上,单个机器故障只会使一台机器停机,而不会影响其余机器,从而得到很高的可靠性。在系统中多台机器同时出现故障的几率是很低的,理想状况下,某一时刻若是有5%的计算机出现故障,系统仍能继续工做。所以对于关键性的应用,通常都采用分布式系统来得到高可靠性。 网络
(4)易扩充:分布式系统容许系统在需求增加时逐渐进行扩充。所以在分布式系统组成后,能够方便地添加若干台计算机,既不用修改软件,也不用另行设计硬件。 分布式
(5)数据共享:容许多个用户访问一个公共的数据库。例如,机票预约系统中的每一个售票员须要访问航班及座位信息,若是将航班及座位信息数据库给他们每人备份一个,实际上是没法工做的,由于他们不知其余人已经卖了哪些座位,因此计算机必须互连。而互连自己就产生了分布式系统。 性能
(6)设备共享:共享并不局限于数据,有些昂贵的外围设备,如彩色激光打印机、照相排版机和大型存储设备等,都容许多个用户共享。 操作系统
(7)通讯:令人们之间的通讯变得更加容易,如经过电子邮件。 设计
(8)灵活性:分布式系统中将多台计算机连在一块儿,可使工做可以在最合适的计算机上完成,可使用最有效的方式将工做负荷分配到可用的机器上,即便某些计算机失效也可使其工做在其余计算机上获得补偿。
尽管分布式系统有不少优势,但也存在一些缺点。首先是软件问题。分布式系统须要与集中式系统彻底不一样的软件,特别是系统所须要的分布式操做系统才刚刚出现。其次是通讯网络问题。因为网络会损失信息,所以须要专门的软件进行恢复,当网络出现过载时也必须对它进行改造替换或加入另外的网络扩容,这些都将会抵消经过创建分布式系统所得到的大部分优点。另外,数据易于共享也存在安全问题,容易形成对保密数据的访问。尽管存在这些潜在的问题,你们仍是认为分布式系统的优势多于缺点,而且广泛认为分布式系统在将来几年中会愈来愈重要。
3.分布式的难点
(1)缺少全局时钟
(2)面对故障时的独立性
(3)很难处理单点故障
(4)很难实现事务