《2022年大型网站系统学习笔记 .pdf》由会员分享,可在线阅读,更多相关《2022年大型网站系统学习笔记 .pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、大型网站系统与Java 中间件实践读书笔记(一)第一章分布式系统介绍1.1 初识分布式系统1.2 分布式系统的基础知识1.2.1 组成计算机的五要素输入设备、输出设备、存储(外存+【内存)、运算、控制】1.2.2 线程与进程的执行模式1.2.2.1 阿萨姆定律告诉我们程序的并发性是多么重要,因为可并行代码的比例决定了你增加处理器所能带来的速度上的提升。1.2.2.2 互不通信的的多线程模式1.2.2.3 基于共享容器协同的(协同)多线程 模式需要对多进程所共享的数据进行处理,经典实例如生产者消费者问题,其中这里的容器就是共享的队列,或者叫做数据对象。对于容器中的数据需要有所保护和对线程访问的控
2、制以保证正确性对于存储数据的容器或对象有线程安全和线程不安全之分1.2.2.4 基于事件协同的(协同)多线程 模式除了并发访问的控制,线程间会存在着协调的需求。例如A、B 两个线程, B 线程需要等待某事件触发或者某个状态才能继续自己的工作,而这个状态的改变或者事件的产生与A线程相关,那么这种情况下吗,就需要完成线程间的协调。预防死锁注意,以上讲到的都是单进程下的线程模型,接下来讲的是进程间的关系1.2.2.5 多进程 模式多进程与多线程有许多相似情况,也有不同之处。 首先, 多线程会遇到的状况以及使用方法,多进程也有类似的场景,只是具体的实现方式存在不同。造成不同的最大原因是名师资料总结 -
3、 - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - 通信、 协同、事件通知及互斥锁的释放方面,线程进程均有所不同。关于进程的这些方面,不同的平台有不同的实现方式。相较于多线程, 多进程的资源控制更容易实现,此外单个进程的故障不会造成整体的不可用性,当然,多进程间的数据共享会比多线程复杂,涉及到序列化与反序列化。1.2.3 网络通信基础知识1.2.3.1OSI 与 TCP/IP 网络模型1.2.3.2 网络 IO 实现方式1. BIO 方式,即阻塞的
4、实现方式2. NIO 方式,即非阻塞的实现方式3. AIO 方式,异步IO 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - 1.2.4 如何把应用从单机扩展到分布式1.2.4.1 输入设备的变化相互连接的节点+传统意义上的人机交互输入设备1.2.4.2 输出设备的变化相互连接的节点在向其他节点传输市+传统意义上的输出设备1.2.4.3 控制器的变化PC 中的控制器是指CPU 分布式系统中多个节点通过网络进行消息的传递和协调;所以
5、分布式系统中的控制器主要作用是协调或控制节点之间的动作和行为。方式主要有以下五种。使用硬件负载均衡设备来控制请求的转发;使用 LVS 控制请求的转发;采用名称服务 (主要任务是收集请求处理服务器的信息提供给请求发起方)的直联方式控制请求的转发;采用规则服务 (请求发起的机器通过规则服务器给出的规则选择请求处理得机器)控制路由请求的直连调用;Master+Worker 的方式其中前两种的缺点是,由于处于请求路径的必经之路上,所以会带来流量的增加和延时问题;并且当透明代理出现问题是将直接影响请求调用。而优点就是代价低,可控性强。中间两种直联方式的优点是相对于透明代理的;而缺点是代码升级复杂。名师资
6、料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - 1.2.4.4 运算器的变化运算器由单台到多台,那么问题来了:用户改去访问那个服务器呢?主要有两种办法:一种是通过DNS 服务器进行解析从而实现调度和控制;还有就是在用户和网站服务器之间增加负载均衡设备(纯硬件或者LVS 等软件都可以) 。总结起来,构成运算器的多个节点在控制器的配合下对外提供服务。再比如,日志处理任务在单台、多台服务器下的情况。如下图:1.2.4.5 存储器的变化在分布
7、式系统中, 我们需要将具有存储功能的多个节点组织再一起是指看上去像“一个”存储器。就像运算器一样,这也需要控制器的配合。下面是用最基础的key-value 场景来介绍。单机的 key-value 服务使用代理的多机key-value 服务 /使用名称服务的key-value 服务/使用规则服务器的key-value 服务 /通过 Master 控制的 key-value 服务1.2.5 分布式系统的难点1.2.5.1 缺乏全局时钟时序性线程进程锁1.2.5.2 面对故障独立性1.2.5.3 处理单点故障单点故障及其解决方案:做好备份;降低单点故障影响范围。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - 1.2.5.4 事务的挑战名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -
限制150内