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)


相关推荐

  • python3.8安装scrapy_安装scrapy

    python3.8安装scrapy_安装scrapy抓取网站的代码实现很多,如果考虑到抓取下载大量内容,scrapy框架无疑是一个很好的工具。下面简单列出安装过程。PS:一定要按照Python的版本下载,要不然安装的时候会提醒找不到Python。1.安装Python安装完了记得配置环境,将python目录和python目录下的Scripts目录添加到系统环境变量的Path里(在python2.7以后版本中,安装过程中会有个选项:添加到python…

  • group by详解

    group by详解一. 概述group_by的意思是根据by对数据按照哪个字段进行分组,或者是哪几个字段进行分组。二. 语法select 字段  from 表名 where  条件  group by    字段或者select 字段  from 表名 group by  字段  having  过滤条件注意:对于过滤条…

  • git 重置用户名 密码信息

    gitclone时,权限不够。如fatal:unabletoaccess:TherequestedURLreturnederror:403可能原因是,你之前在本电脑使用过git.但是以前和现在又不是同一个账户。所以当你现在使用gitcloneurl时,默认使用以前的账户信息。所以出现没有权限的状况。解决方法:重置本机保留的gitconfig信息。…

  • 数据库的设计原则有哪些_数据库三原则

    数据库的设计原则有哪些_数据库三原则数据库设计是程序开发的核心部分,标准的数据库设计原则和步骤能有效提高开发进度和效率。数据库设计(DatabaseDesign)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。  在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。一、数据库和信息系统  (1)数据库是信息系统的核

  • JSONPath表达式[通俗易懂]

    JSONPath表达式[通俗易懂]前言JSONPath是一种简单的方法来提取给定JSON文档的部分内容。JSONPath提供的json解析非常强大,它提供了类似正则表达式的语法,基本上可以满足所有你想要获得的json内容。JSONPath表达式语法1、操作符?:问号,标记表达式的开头。使用的语法[?(表达)]例如:[?(Expression)]@:在符号处表示正在处理的当前节点。语法使用$.books[?@.price>100]注意:使用JSONPath的[]操作符操作一个对象或者数组,索引是从0开始。

  • js手机号正则校验_正则表达式验证手机号码格式

    js手机号正则校验_正则表达式验证手机号码格式这篇文章主要介绍了2022手机号码JS正则表达式验证实例代码,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下​概念正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。简介正则表达式是对字符串(包括普通字符(例如,a到z之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字

发表回复

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

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