当前位置: 首页 > news >正文

珠海制作公司网站创网数据恢复

珠海制作公司网站,创网数据恢复,网站建设捌金手指花总二九,templates文件夹文章目录 什么是负载均衡#xff1f;服务请求的负载均衡方法轮询策略随机策略哈希和一致性哈希策略对比分析 负载均衡是分布式可靠性中非常关键的一个问题或技术#xff0c;在一定程度上反映了分布式系统对业务处理的能力。比如#xff0c;早期的电商抢购活动#xff0c;当… 文章目录 什么是负载均衡服务请求的负载均衡方法轮询策略随机策略哈希和一致性哈希策略对比分析 负载均衡是分布式可靠性中非常关键的一个问题或技术在一定程度上反映了分布式系统对业务处理的能力。比如早期的电商抢购活动当流量过大时可能就会发现有些地区可以购买而有些地区因为服务崩溃而不能抢购。这其实就是系统的负载均衡出现了问题。 什么是负载均衡 通常情况下负载均衡可以分为两种 一种是请求负载均衡即将用户的请求均衡地分发到不同的服务器进行处理另一种是数据负载均衡即将用户更新的数据分发到不同的存储服务器。 分布式系统中服务请求的负载均衡是指当处理大量用户请求时请求应尽量均衡地分配到多台服务器进行处理每台服务器处理其中一部分而不是所有的用户请求以完成高并发的请求处理避免因单机处理能力的上限导致系统崩溃而无法提供服务的问题。比如有 N 个请求、M 个节点负载均衡就是将 N 个请求均衡地转发到这 M 个节点进行处理。 服务请求的负载均衡方法 通常情况下计算机领域中在不同层有不同的负载均衡方法。比如从网络层的角度通常有基于 DNS、IP 报文等的负载均衡方法在中间件层常见的负载均衡策略主要包括轮询策略、随机策略、哈希和一致性哈希等策略。 轮询策略 轮询策略是一种实现简单却很常用的负载均衡策略核心思想是服务器轮流处理用户请求以尽可能使每个服务器处理的请求数相同。生活中也有很多类似的场景比如学校宿舍里学生每周轮流打扫卫生就是一个典型的轮询策略。在负载均衡领域中轮询策略主要包括顺序轮询和加权轮询两种方式。 顺序轮询假设有 6 个请求编号为请求 1~6有 3 台服务器可以处理请求编号为服务器 1~3如果采用顺序轮询策略则会按照服务器 1、2、3 的顺序轮流进行请求。加权轮询为每个服务器设置了优先级每次请求过来时会挑选优先级最高的服务器进行处理。比如服务器 1~3 分配了优先级{411}这 6 个请求到来时还当成 6 个步骤如下所示。 请求 1 由优先级最高的服务器 1 处理服务器 1 的优先级相应减 1此时各服务器优先级为{311}请求 2 由目前优先级最高的服务器 1 进行处理服务器 1 优先级相应减 1此时各服务器优先级为{211}。以此类推直到处理完这 6 个请求。每个请求处理完后相应服务器的优先级会减 1。最终的处理结果是服务器 1 处理请求 1~4服务器 2 处理请求 5服务器 3 会处理请求 6。 Nginx 默认的负载均衡策略就是一种改进的加权轮询策略 Nginx 轮询策略需要用到的变量 weight配置文件中为每个服务节点设置的服务节点权重固定不变。effective_weight服务节点的有效权重初始值为 weight。 在 Nginx 的源码中有一个最大失败数的变量 max_fails当服务发生异常时则减少相应服务节点的有效权重公式为 effective_weight effective_weight - weight / max_fails之后再次选取本节点若服务调用成功则增加有效权重effective_weight 直至恢复到 weight。current_weight服务节点当前权重初始值均为 0之后会根据系统运行情况动态变化。 假设各服务器的优先级是{411}还是将 6 个请求分为 6 步来进行如下所示 遍历集群中所有服务节点使用 current_weight current_weight effective_weight计算此时每个服务节点的 current_weight得到 current_weight 为{411}total 为 4116。选出 current_weight 值最大的服务节点即服务器 1 来处理请求随后服务器 1 对应的 current_weight 减去此时的 total 值即 4 - 6变为了 -2 。按照上述步骤执行首先遍历按照 current_weight current_weight effective_weight 计算每个服务节点 current_weight 的值结果为{222}total 为 6选出 current_weight 值最大的服务节点。current_weight 最大值有多个服务节点时直接选择第一个节点即可在这里选择服务器 1 来处理请求随后服务器 1 对应的 current_weight 值减去此时的 total即 2 - 6结果为 -4。以此类推直到处理完这 6 个请求。最终的处理结果为服务器 1 处理请求 1、2、4、6服务器 2 处理请求 3服务器 3 会处理请求 5。 可以看到与普通的加权轮询策略相比这种轮询策略的优势在于当部分请求到来时不会集中落在优先级较高的那个服务节点。轮询策略的优点就是实现简单且对于请求所需开销差不多时负载均衡效果比较明显同时加权轮询策略还考虑了服务器节点的异构性即可以让性能更好的服务器具有更高的优先级从而可以处理更多的请求使得分布更加均衡。轮询策略的缺点是每次请求到达的目的节点不确定不适用于有状态请求的场景。并且轮询策略主要强调请求数的均衡性所以不适用于处理请求所需开销不同的场景。轮询策略适用于用户请求所需资源比较接近的场景。 随机策略 随机策略也比较容易理解指的就是当用户请求到来时会随机发到某个服务节点进行处理可以采用随机函数实现。这里随机函数的作用就是让请求尽可能分散到不同节点防止所有请求放到同一节点或少量几个节点上。如图所示假设有 5 台服务器 Server 1~5 可以处理用户请求每次请求到来时都会先调用一个随机函数来计算出处理节点。这里随机函数的结果只能是{1,2,3,4,5}这五个值然后再根据计算结果分发到相应的服务器进行处理。比如图中随机函数计算结果为 2因此该请求会由 Server2 处理。 这种方式的优点是实现简单但缺点也很明显与轮询策略一样每次请求到达的目的节点不确定不适用于有状态的场景而且没有考虑到处理请求所需开销。除此之外随机策略也没有考虑服务器节点的异构性即性能差距较大的服务器可能处理的请求差不多。因此随机策略适用于集群中服务器节点处理能力相差不大用户请求所需资源比较接近的场景。比如RPC 框架 Dubbo当注册中心将服务提供方地址列表返回给调用方时调用方会通过负载均衡算法选择其中一个服务提供方进行远程调用。关于负载均衡算法Dubbo 提供了随机策略、轮询策略等。 哈希和一致性哈希策略 无论是轮询还是随机策略对于一个客户端的多次请求每次落到的服务器很大可能是不同的如果这是一台缓存服务器就会对缓存同步带来很大挑战。尤其是系统繁忙时主从延迟带来的同步缓慢可能会造成同一客户端两次访问得到不同的结果。解决方案就是利用哈希算法定位到对应的服务器。哈希和一致性哈希是数据负载均衡的常用算法。数据分布算法的均匀性一方面指数据的存储均匀另一方面也指数据请求的均匀。数据请求就是用户请求的一种哈希、一致性哈希、带有限负载的一致性哈希和带虚拟节点的一致性哈希算法同样适用于请求负载均衡。所以哈希与一致性策略的优点是哈希函数设置合理的话负载会比较均衡。而且相同 key 的请求会落在同一个服务节点上可以用于有状态请求的场景。除此之外带虚拟节点的一致性哈希策略还可以解决服务器节点异构的问题。但其缺点是当某个节点出现故障时采用哈希策略会出现数据大规模迁移的情况采用一致性哈希策略可能会造成一定的数据倾斜问题。同样的这两种策略也没考虑请求开销不同造成的不均衡问题。应用哈希和一致性哈希策略的框架有很多比如 Redis、Memcached、Cassandra 等。除了以上这些策略还有一些负载均衡策略比较常用。比如根据服务节点中的资源信息CPU内存等进行判断服务节点资源越多就越有可能处理下一个请求再比如根据请求的特定需求如请求需要使用 GPU 资源那就需要由具有 GPU 资源的节点进行处理等。 对比分析 知识扩展如果要考虑请求所需资源不同的话应该如何设计负载均衡策略呢 轮询策略、随机策略以及哈希和一致性哈希策略主要考虑的是请求数的均衡并未考虑请求所需资源不同造成的不均衡问题。那么如何设计负载均衡策略才能解决这个问题呢 其实这个问题的解决方案有很多常见的思路主要是对请求所需资源与服务器空闲资源进行匹配也称调度。 关于调度我们可以使用单体调度的思路让集群选举一个主节点每个从节点会向主节点汇报自己的空闲资源当请求到来时主节点通过资源调度算法选择一个合适的从节点来处理该请求。 最差匹配和最佳匹配算法。这两种算法各有利弊最差匹配算法可以尽量将请求分配到不同机器但可能会造成资源碎片问题而最佳匹配算法虽然可以留出一些“空”机器来处理开销很大的请求但会造成负载不均的问题。因此它们适用于不同的场景。 除此之外一致性哈希策略也可以解决这个问题让请求所需的资源和服务器节点的空闲资源与哈希函数挂钩即通过将资源作为自变量带入哈希函数进行计算从而映射到哈希环中。 比如我们设置的哈希函数结果与资源正相关这样就可以让资源开销大的请求由空闲资源多的服务器进行处理以实现负载均衡。但这种方式也有个缺点即哈希环上的节点资源变化后需要进行哈希环的更新。 你知道的越多你不知道的越多。
http://www.zqtcl.cn/news/662122/

相关文章:

  • 个人网站空间大小江油官方网站建设
  • 怎样建网站做什么网站能吸引流量
  • 做vi设计的网站网络营销推广思路
  • 简述网站设计流程沁水做网站
  • 南京公司网站建设怎么收费获奖网页设计
  • 网站域名试用期水墨风格网站源码
  • 长沙网站开长沙手机网站建设哪些内容
  • 网站建设算固定资产吗做泵阀生意到哪个网站
  • 佛山网站建设定制杭州人防质监站网址
  • 什么网站可以做微官网定制小程序制作一个需要多少钱
  • 扒下来的网站怎么做修改什么样是权网站重高的
  • 淘宝客做网站链接潍坊网站建设wfzhy
  • 怎样做二维码链接到网站上做的比较好的美食网站有哪些
  • 自动化科技产品网站建设响应式博客wordpress
  • 个人建站如何赚钱男人的好看网
  • 门户网站建设管理工作作一手房用什么做网站
  • 网站建设优化服务案例三合一网站程序
  • 网站长尾词关于制作网站的方案
  • 做二手衣服的网站有哪些wordpress单本小说采集
  • 曲靖市建设局网站品牌营销咨询公司是做什么的
  • wordpress网站统计代码放哪个文件putty搭建wordpress
  • 桦南县建设局网站天坛装修公司口碑怎么样
  • 网站的建设求职简历网站开发与维护价格
  • 网站空间备份站长网站优点
  • 房产网站做那个比较好网页设计属于前端吗
  • 衡水企业网站建设费用html5网页设计教程
  • 用wp系统做网站网站有收录没排名
  • 网站源码程序下载ios开发软件
  • 设计好的网站什么是企业网站策划案
  • 北京网站建设亿玛酷适合5传奇网站装备动态图怎么做