dubbo的负载均衡策略

dubbo的负载均衡策略Dubbo框架的负载均衡策略有以下几种:1、Random随机策略:该策略比较均匀,可以动态的调节权重;2、RoundRobin轮询策略:可以按照权重设置轮询的的比率;3、LeastActive最小活跃数策略:该策略是按照服务提供者的并发数目,该数目越小那么落在该服务提供者的身上越大的概率;4、ConsistentHash一致性策略:hash一…

大家好,又见面了,我是你们的朋友全栈君。

Dubbo 框架 的负载均衡策略 有以下几种:

1、Random 随机策略:
该策略比较均匀,可以动态的调节 权重;
2、RoundRobin 轮询策略:
可以按照权重 设置轮询的的比率;
3、LeastActive 最小活跃数 策略:
该策略是按照服务提供者的并发数目,该数目越小那么落在该 服务提供者的身上越大的概率;
4、ConsistentHash 一致性策略:
hash一致性算法 ,请求分发到同一台服务上去,当该服务宕机 ,通过虚拟节点 把该机器的请求 均匀的分发到其他服务上去;

hash 一致性策略:
说到这个,就会说到 hash 环,这里我粗略的画下 hash 环;
就是 根据请求的 uid 计算 hash(uid) ,计算的hash 值 在hash 环 上,找出 hash(uid)顺时针方向 距离哪一个 hash(IP) 最近,将最近的这个IP 作为路由 IP;

1
1、若 p1 宕机,该请求 就会分发到 p3 机器上去;
2、若在p1 和 hash(uid ) 之间增 p4 机器,那么该请求就会被 p4 机器处理;

2、虚拟节点

2.1、 虚拟节点的出现,就为了解决一件事:
解决hash一致性倾斜问题。

hash一致性 倾斜问题是什么? 就是机器在 hash 环上分布不均匀,导致 服务提供者 处理的请求数目差异过大 问题;
如下图:
大部分请求都被 hash(p1) 这台机器处理,这样的分布式有设么意义呢,是吧;

4
这个问题,需要通过增加虚拟节点的方式来解决【当然有人说加 机器,这不成本较高么】,虚拟节点的位置也尤为关键,若虚拟节点分布均匀的话,这样看以均匀的处理 hash 环上的请求,当分部不均匀的时候,很容易造成 上图一样 的弊端;

均匀一致性 Hash 的目标是如果服务器有 N 台,客户端的 Hash 值有 M 个,那么每个服务器应该处理大概 M/N 个用户的请求;
但Dubbo 提供的 hash 一致性就是 非均匀的;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/157344.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • leetcode 最长有效括号_字符指针赋值为什么不能加大括号

    leetcode 最长有效括号_字符指针赋值为什么不能加大括号给你一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。示例 1:输入:s = “(()”输出:2解释:最长有效括号子串是 “()”示例 2:输入:s = “)()())”输出:4解释:最长有效括号子串是 “()()”示例 3:输入:s = “”输出:0题解括号匹配:(看作+1,)看作-1,所有满足条件的括号应该是前缀和>=0,并且总和==0class Solution {public: const int INF =

  • Rider2021 激活码(注册激活)[通俗易懂]

    (Rider2021 激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • 在 CentOS 7.3 上安装 nginx 服务为例,说明在 Linux 实例中如何检查 TCP 80 端口是否正常工作…

    在 CentOS 7.3 上安装 nginx 服务为例,说明在 Linux 实例中如何检查 TCP 80 端口是否正常工作…

    2021年10月18日
  • 普罗米修斯 软件_Prometheus普罗米修斯

    普罗米修斯 软件_Prometheus普罗米修斯Prometheus普罗米修斯是一款针对苹果用户专属打造的苹果手机系统降级工具。很多的果粉更新了ios10以后觉得系统无比的卡,觉得部分功能比较之前的系统差的太多了,就用Prometheus普罗米修斯工具进行系统降级,从而获得更好的使用体验。感兴趣的欢迎到西西下载。Prometheus普罗米修斯详情介绍:Prometheus不只是一款GUI工具,它将“nonceenabler”、“futurere…

  • jdbc和数据库连接池_数据库连接池满了

    jdbc和数据库连接池_数据库连接池满了数据库连接池JDBC数据库连接池的必要性在使用开发基于数据库的web程序时,传统的模式基本是按照以下步骤:在主程序(如servlet beans)中建立数据库连接进行sql操作断开数据库连接这种模式开发,存在的问题:普通的JDBC数据库连接使用DriverManager来获取,每次向数据库建立连接的时候都要将Connection加载到内存中,再验证用户名和密码(大概花费0.05s-1s),需要数据库连接的时候,就向数据库要求一个,执行完成后再断开。这样的方式将会消耗大量的时间。数据库的

  • h5文件怎么打开_h5下载文件

    h5文件怎么打开_h5下载文件用h5py的接口,只能帮你到这了

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号