分布式学习(一)

来源:互联网 发布:铁通和广电网络哪个好 编辑:程序博客网 时间:2024/06/07 21:42

分布式系统的基础知识

1.组成计算机的5要素
输入设备,输出设备,运算器,控制器,存储器。

2.网络IO实现方式
(1)BIO方式
采用阻塞的方式实现。一个Socket套接字需要使用一个线程来进行处理。发生建立连接、读数据、写数据的操作时,都可能会阻塞。
当连接很多时,线程数量也会很多,这显然无法实现。

(2)NIO方式
NIO基于事件驱动思想,采用的是Reactor模式。不需要为每个Socket套接字分配一个线程,而可以在一个线程中处理多个Socket套接字相关的工作。
通过Reactor对所有客户端的Socket套接字的时间做处理,然后派发到不同的线程中。

(3)AIO方式
采用Proactor模式。BIO和AIO差别在于,AIO在进行读/写操作时,只需调用相应的read/write方法,并传入CompletionHandler(动作完成的处理器);动作完成之后,调用CompletionHandler。NIO的通知是发生在动作之前,是在可写、可读的时候,Selector发现这些事件后调用Handler处理。

单机扩展到分布式

1.控制器的变化
(1)请求发起方和请求处理方中间有一个硬件负载均衡设备。
(2)请求发起方和请求处理方中间是LVS(或其他软件负载均衡系统)
(3)通过名称服务进行交互。“请求服务”作用是,一,收集提供请求处理的服务器的地址信息,二,提供这些地址信息给请求发起方。 个人认为zookeeper就是这样子的。
(4)规则服务器给请求机器提供服务。请求发给规则服务器,规则服务器将规则返回给请求机器,请求机器经过一系列处理得到地址再和处理服务器。
(5)Master-Worker。Master管理任务,把任务分配给不同Worker进行处理。

2.运算器的变化
运算器是运用多个节点的计算能力来协同完成整体的计算任务。
如何选择哪一台服务器进行运算?
(1)通过DNS服务器进行调度和控制
(2)DNS返回负载均衡的地址
(3)Master-Worker

3.存储器的变化
(1)代理服务器
(2)名称服务器
(3)规则服务器
(4)Master-Worker

处理单点故障

在整个分布式系统中,如果某个角色或者功能只有某台单机在支持,那么这个节点成为单点,其发生的故障成为单点故障。
避免单间的关键就是把这个功能从单机实现变为集群实现。
还可以

  1. 给这个单点做好备份,能够在出现问题时进行恢复
  2. 降低单点故障的影响范围。

就这样,,,,明天继续阅读。

原创粉丝点击