seo网站点击量排名优化,南京越城建设集团有限公司网站,公司网站建设方案,做域名后就得做网站吗负载均衡指把用户请求分摊到不同服务器处理#xff0c;提高系统的并发性和可靠性。
可由专门的软件#xff08;更便宜#xff09;和硬件#xff08;性能好#xff09;实现。
负载均衡分为服务端负载均衡和客户端负载均衡。 服务端负载均衡 主要应用在 系统外部请求 和 网…负载均衡指把用户请求分摊到不同服务器处理提高系统的并发性和可靠性。
可由专门的软件更便宜和硬件性能好实现。
负载均衡分为服务端负载均衡和客户端负载均衡。 服务端负载均衡 主要应用在 系统外部请求 和 网关层 之间可以使用 软件 或者 硬件 实现。
客户端负载均衡 应用于系统内部的不同的服务之间。客户端自己维护服务器地址列表发送请求前根据负载均衡算法选择某一台服务器处理请求。
客户端负载均衡器和服务运行在同一个Java 程序里无需额外的网络开销。但其实现受到编程语言的限制如 Spring Cloud Load Balancer 只能用于 Java 语言。 Dubbo、Spring Cloud 均内置开箱即用的客户端负载均衡实现。Dubbo默认自带Spring Cloud 通过组件实现属于可选项较常用的是 Spring Cloud Load Balancer官方推荐 和 RibbonNetflix已被启用。 负载均衡常见算法
随机法
未配置权重所有的服务器被访问的概率相同。配置权重权重越高被访问概率越大。
未加权重的随机算法适合服务器性能相近的集群每个服务器承载相同的负载。加权随机算法适合服务器性能不等的集群权重使请求分配更合理。
缺陷部分机器在一段时间之内无法被随机到。
轮询法
挨个轮询服务器处理也可设置权重。
未配置权重每个请求按时间顺序逐一分配到不同的服务器处理。配置权重权重越高的服务器被访问的次数就越多。
平滑的加权轮训算法
平滑的加权轮训算法最早是在 Nginx 中被实现可以参考这个 commitUpstream: smooth weighted round-robin balancing. · phusion/nginx27e9498 · GitHub
两次随机
两次随机法随机法的基础上多加一次随机多选一个服务器。根据两台服务器的负载情况选出最合适的服务器。
好处可动态地调节后端节点的负载使其更加均衡。如只使用一次随机可能会导致某些服务器过载而某些服务器空闲
哈希法
将请求的参数信息通过哈希函数转换成哈希值根据哈希值决定使用哪一台服务器。
服务器数量不变时相同参数的请求总被同一台服务器处理如同个 IP 的请求、同一个用户的请求。
一致哈希法
服务器数量变化时常规哈希的哈希值会重新落在不同的服务器。而一致性哈希是将数据和节点映射到一个哈希环上然后根据哈希值的顺序来确定数据属于哪个节点。当服务器增加或删除时只影响该服务器的哈希不会导致整个服务集群的哈希值重排。
最小链接法
遍历服务器列表选连接数最小的服务器来响应当前请求。相同连接时可进行加权随机。
最少活跃法
最少活跃法以活动连接数可理解为当前正在处理的请求数为标准。活跃数越低说明处理能力越强使处理能力强的服务器处理更多请求。相同活跃数时进行加权随机
最快相应时间法
客户端维持每个服务器的响应时间每次请求挑响应时间最短的。
常用负载均衡解决方案
DNS 解析在 DNS 服务器中为同一个主机配置多个 服务器IP 地址。用户请求域名时DNS 服务器采用轮询返回 IP 地址。现在的 DNS 解析几乎都支持 IP 地址的权重配置使性能不等的服务器处理请求更合理。如阿里云 DNS 支持权重配置
反向代理客户端将请求发到反向代理服务器由其选择目标服务器获取数据后再返回给客户端。对外暴露的是反向代理服务器地址隐藏了真实服务器 IP 。
最常用的反向代理服务器Nginx 。
客户端负载均衡组件
Netflix Ribbon 和 Spring Cloud Load Balancer 是目前 Java 最流行的两个负载均衡组件。
Ribbon 老牌负载均衡组件由Netflix 开发功能比较全面支持负载均衡策略多。 Spring Cloud Load Balancer Spring 官方为取代 Ribbon 开发功能相对更简单一些支持的负载均衡少。
Ribbon 支持的 7 种负载均衡策略
RandomRule随机策略。RoundRobinRule默认轮询策略WeightedResponseTimeRule权重根据响应时间决定权重策略BestAvailableRule最小连接数策略RetryRule重试策略按照轮询策略来获取服务如果获取的服务实例为 null 或已经失效则在指定的时间之内不断地进行重试来获取服务如果超过指定时间依然没获取到服务实例则返回 nullAvailabilityFilteringRule可用敏感性策略先过滤掉非健康的服务实例然后再选择连接数较小的服务实例ZoneAvoidanceRule区域敏感性策略根据服务所在区域的性能和服务的可用性来选择服务实例
Spring Cloud Load Balancer 支持的 2 种负载均衡策略
RandomLoadBalancer随机策略RoundRobinLoadBalancer默认轮询策略