大型分布式网站架构设计与实践阅读笔记(1)

大型分布式网站架构设计与实践阅读笔记

       这次主要阅读了第一章的内容,第一章主要介绍企业内部SOA(即面向服务的体系结构)架构的实现,包括HTTP协议的工作原理,基于TCP协议和基于HTTP协议的RPC实现,如何实现服务的路由和负载均衡,HTTP服务网关的架构。

       RCP是远程过程调用,RPC将原来的本地调用转变为调用远端的服务器上的方法给系统的处理能力和吞吐量带来了近似于无限制提升的可能,这也是实现分布式计算的基础。基于TCP协议实现的RPC,能够更灵活的对协议字段进行定制,减少网络传输字节数,降低网络开销,提高性能,实现更大的吞吐量和并发数。

SOA架构中,服务消费者通过服务名称,在众多服务中找到要调用的服务的地址列表,称为服务的路由。当服务的规模很小,可以采用硬编码的方式将服务地址和配置写在代码,可以采用LVS(是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统)或Nginx等软件解决方案,通过相关的配置,即可解决服务的路由及负载均衡问题。当服务的规模很大,对应的服务器越来越多,单靠人工来管理和维护服务器地址和配置信息,很困难,单点故障的问题也开始凸显,一旦服务器路由或者负载均衡服务器的宕机,依赖它的所有服务均失效。

负载均衡算法主要有轮询(round robin)法:按照顺序轮流分配到后端服务器上,不关心服务器实际的连接数以及当前的系统负载。随机法:根据服务器列表的大小来随机选取其中的一台来进行访问。源地址哈希(Hash)法:获取用户ip地址,通过hash函数来计算一个数值,然后和服务器列表大小来取模运算。加权轮询法:配置高的权重,让其处理更多的请求。加权随机法:按照权重来选择服务器。最小连接数(least connection)法:根据服务器当前的连接数,动态的选取其中当前积压连接数最少的一台服务器来处理当前请求,尽可能提高后端服务器的利用率,将负载合理地分流到每一台机器。

原文地址:https://www.cnblogs.com/liujinxin123/p/13054951.html