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
在整个分布式系统中,如果某个角色或者功能只有某台单机在支持,那么这个节点成为单点,其发生的故障成为单点故障。 避免单间的关键就是把这个功能从单机实现变为集群实现。 还可以
给这个单点做好备份,能够在出现问题时进行恢复降低单点故障的影响范围。就这样,,,,明天继续阅读。