wordpress 分享 点赞,百度产品优化排名软件,网站 流程优化,郑州做网站最好的公司一、无共享架构 1、无共享架构 无共享架构是一种分布式计算架构#xff0c;这种架构中不存在集中存储的状态#xff0c;系统中每个节点都是独立自治的#xff0c;整个系统中没有资源竞争#xff0c;这种架构具有非常强的扩张性#xff0c;目前在web应用中被广泛使用。 无共…一、无共享架构 1、无共享架构 无共享架构是一种分布式计算架构这种架构中不存在集中存储的状态系统中每个节点都是独立自治的整个系统中没有资源竞争这种架构具有非常强的扩张性目前在web应用中被广泛使用。 无共享架构的一个重要实践指导原则就是避免在互联系统中使用Session因为实践已经证明在一个集群分布式计算环境中若Session状态维护在各个节点服务器上为了保证状态一致性节点间Session数据需要互相拷贝同步严重影响性能我们需要尽可能的改造现有架构不要使用Session。 2、对比 shared-nothing、shared-memory、shared-disk是并行系统最常使用的模式。shared-memory多个cpu共享同一片内存cpu之间通过内部通讯机制进行通讯shared-disk每一个cpu使用自己的私有内存区域通过内部通讯机制直接访问所有磁盘系统和shared-memory、shared-disk相比shared-nothing优势明显在针对多用户并行访问的时候通过横向扩充资源能够大大减少响应时间提升整体吞吐量和效率。 3、分片 shared noting需要确立一种分片策略使得依据不同的分片策略减少资源竞争。 三种基本的分片策略结构 (1)功能分片 根据多个功能互相不重叠的特点进行分片这种方式已经在ebay取得巨大成功。缺点也很明显即技术人员需要深入理解应用领域才能更好地分片; (2)键值分片 在数据中找到一个可以均匀分布到各个分片中的键值。 (3)查表 在集群中有一个节点充当目录角色用于查询哪个节点拥有用户要访问的数据。缺点在于这个表可能成为整个系统的瓶颈及单点失效点; 二、负载均衡 负载均衡Load Balance顾名思义是把服务的并发请求均衡地负载到后端多个具有相同能力的服务进行处理分担以廉价有效透明的方式扩展网络设备或服务的带宽增加吞吐量增强服务的整体处理能力提供服务的灵活性和可用性。 常见的典型的负载均衡应用场景 1、web集群将大量的并发访问或数据流量分担到多台节点设备上分别处理减少用户等待响应的时间。 2、MapReduce单个重负载的运算分担到多台节点设备上做并行处理每个节点设备处理结束后将结果汇总返回给⽤户系统处理能⼒得到大幅度提高。 负载均衡算法 负载均衡算法是负载均衡设备包括虚拟设备或相关软件在执行负载均衡调度选择具体处理的后端服务的时候使用的调度和分发的逻辑。负载均衡的算法只是规定了调度和分发的逻辑在不同的负载均衡方案中都可能使用相同和或类似的算法它只是负载均衡方案的一部分。 常见的主流负载均衡算法包括 (1)轮询算法Round Robin/Weight Round Robin Scheduling 轮询算法通过依次轮叫的方式依次将请求调度不同的后端服务器(Real Server)。通常可以分为普通轮询和加权轮询两种方式。算法的优点是简洁且无状态。 算法简单表示为i ( i 1 ) mod n (2)Hash算法: 随机数HashSources Hashing Scheduling Hash算法又叫取余算法。一般是对请求报文中的某项数据(key一般常用客户端来源IP)计算Hash值然后按机器数量(n)取模。 算法简单表示为idx Hash(key) % n Hash算法中Key的选择常用实践如下 a、请求时间或随机数 特点是简单具有一定分散性但不稳定一般用于要求不高的负载均衡场景。 b、来源IP 特点是简单。如果客户的分布比较广这种方式分散性较好。但如果较多的客户请求来源于同一IP公司网络通过路由器上网分散效果较差。 大多负载均衡设备都支持这种算法著名的nginx和LVS等软件也支持。 (3)一致性Hash算法Consistency Hash Scheduling 一致性Hash算法最常用于分布式缓存如memcached、redis等的定位但同时也可以在系统或程序中用于负载均衡该算法本来的意义就在于分散负载和快速定位。 (4)最少连接或请求数: (Weight)Least Connection/Request Scheduling 最小连接调度是一种动态调度算法它通过服务器当前所活跃的连接数来估计服务器的负载情况。 算法主要逻辑是调度设备或服务记录后端服务器接受请求的计数每次请求总是发给计数最小的服务器处理。 (5)最大空闲Most idle First(基于监控CPU,内存,带宽等综合评估) 6、平均最快响应平均最快响应 7、最少流量Least Traffic Scheduling 还有一种常见的就是基于会话的负载实现但是严格来说Session(一般用于WEB)不能算是算法。Session实现负载均衡的主要过程为首次请求记录用户的SessionID然后再通过轮询等算法选择后端服务器如果用户后续使用同一SessionID发起请求则无需再选择服务器直接转发给前面根据SessionID找到的对应的后端服务器。 负载均衡模式 负载均衡模式主要是指在整体方案中选择从服务网络的哪个层次或哪个产品来实现负载均衡方案。 1、外部模式RR-DNS RR-DNS即DNS轮询模式它的原理是利用DNS服务器支持同一域名配置多个独立IP指向然后轮询解析指向IP实现多次访问的调度和分发实现负载均衡。 它的主要特点为 a、负载均衡实现与后端服务完全没有关系有DNS在本地解析指向实现轮询调度。这个方面来看性能最佳效率最高。 b、DNS服务无法检测到后端服务器是否正常在TTL失效前会一直指向失效的服务器这就要求在实践生成中必须解决后端服务器的高可用问题。 c、一般的第三方DNS服务提供商都支持该功能但如果更新频率高或附带更新逻辑一般会在系统内自键DNS服务然后在注册为公共DNS服务。 2、应用层模式 正向代理用户通过代理服务访问internet, 把internet返回的数据转发给用户。正向代理对于整个网络请求它的角色实际是客户端代理客户对外的访问请求。 反向代理接受internet上用户的请求转发给内部的多台服务器处理完成后转发后端服务器的返回给对应的用户。反向代理对于整个网络请求它的角色实际是服务器代理接受accept所有用户的请求。 反向代理应用模式常见的反向代理应用模式比如通过 Apache, nginx等Web服务器软件实现WEB应用的负载均衡和高可用。利用反向代理软件实现负载均衡是性价比较高的模式。 三、高可用性系统设计 系统高可用性的常用设计模式包括三种包括: 1、主备(Active-Standby) 工作原理主机工作备机处于监控准备状况当主机宕机时备机接管主机的一切工作待主机恢复正常后按使用者的设定以自动热备或手动冷备方式将服务切换到主机上运行。一般需要人工干预才能回复初始状态。 2、互备(Active-Active) 工作原理两台主机A标记为主,B标记为备同时运行各自的服务工作且相互监测情况当任一台主机A宕机时另一台主机B启用并标记为主立即接管它的一切工作保证工作实时可用 3、集群(Cluster) 工作原理多台具有相同能力的服务同时对外提供透明服务所有服务之间都是Active-Active关系并分担处理服务请求一般通过总控节点或集群软件例如zookeeper等进行高可用的控制。转载于:https://www.cnblogs.com/moonandstar08/p/5049853.html