什么是分布式系统?
A distributed system is one in which components located at networked computers communicate and coordinate their actions only by passing messages.
①分布式系统一定由多节点组成;
②组成的节点不是孤立的,而是互相连通的;
③节点之间的操作会协同合作。
分布式系统的意义?
①单机处理能力的性价比越来越低;
②单机处理能力的瓶颈;
③稳定性和可用性。
组成计算机的五要素:
①输入设备
②输出设备
③运算器
④控制器
⑤存储器
线程与进程的执行模式
①互不通信的多线程模式
②基于共享容器协同的多线程模式
③通过事件协同的多线程模式
④多进程模式
如何将应用从单机扩展到分布式呢?
①输入和输出设备的变化
系统中的节点在接收其他节点传来的信息时,可以看做是输入设备;同理,节点在向其他节点传递信息时,可以看做是输出设备。
②控制器的变化
控制器的主要作用是协调和控制节点之间的行为。
a.透明代理模式
在请求发起方和请求处理方有一个负载均衡设备。
不足:
1.增加网络的开销,一是流量,一是延迟
2.代理出了问题,请求就会受到影响
b.引入"名称服务器"
名称服务器的主要功能:一,收集提供请求处理的服务器的地址信息;二,提供这些信息给请求发送方。
不足:
名称服务同样有单点问题;升级较复杂。
c.引入规则服务器
规则服务器只与请求发起的服务器交互。
d.Master/Slave的模式,由Master把任务分配给不同的Worker处理。
③运算器的变化
方案一:DNS负责返回服务器的地址;
方案二:DNS负责返回负载均衡设备的地址;
④存储器的变化
方案一:增加代理服务器,转发应用服务器到存储服务器的请求;
方案二:同样引入名称服务和规则服务;
方案三:Master服务器的方式
分布式系统的难点:
①全局时钟:本质问题是如何区分两个动作的顺序。
②故障的独立性
③单点故障
④分布式事务