在dubbo的服务提供者集群时,消费端请求分发到哪一个节点,这时就牵扯到dubbo负载均衡问题。dubbo负载均衡有五种配置模式,分别为:

  1. 无策略配置,全完随机分发;
  2. 根据服务权重配置比例,随机分发;
  3. 根据服务权重配置比例,轮询分发;
  4. 最少活跃调用数模式;
  5. 一致性hash模式;

本章提供者,消费者工程代码在如下文章中工程基础之上调整测试:

Dubbo(六)使用SpringBoot搭建dubbo服务提供者工程

Dubbo(七)使用SpringBoot搭建dubbo消费者工程

Dubbo(五)Dubbo 简单监控平台(monitor)搭建

一、无策略配置,全完随机分发模式

及默认的分发模式,不做任何配置时,分发到提供者哪一个节点完全随机。默认情况下权重都为100。我们在我们以前的springboot工程上通过修改配置文件中dubbo协议端口来启动不同的节点。

java代码如下,在远程接口实现方法中打印当前节点端口做区分

启动完成后通过dubbo-admin管理界面可以看到启动成功的同一个接口服务又两个不同节点的提供者信息:

启动消费者工程后我们进行访问测试:其访问打印无规律。

二、根据服务权重配置比例,随机分发

在提供方接口类上@Service注解上通过weight 注解属性进行配置,系统将根据权重之间比例进行随机分发。我们在测试中启动两个服务,比重分别为300和100。

启动成功后dubbo-admin 界面查看如下:

访问请求8次访问后打印如下:可以看到分发比例按照3:1进行分发。

三、根据服务权重配置比例,轮询分发

在注解@Service中指定负载均衡用的属性为loadBalance。前面随机模式中loadBalance默认值都为"random"。在轮询模式中loadBalance需要指定为"roundrobin"。我们启动两个服务负载均衡模式都为"roundrobin",其权重分别为 100和300。通过访问测试我们可以看到,所谓轮询+权重模式配置后,类似于每个节点相当于一个木桶,权重越大的木桶容量约大。反正越小。系统将一次像每个桶中到入同体量的水,当某个桶满了之后,将向未满的桶中再轮询加水。直到全部都添满,再重复往三个不同大小的空桶中继续依次添水。每次添水相当于dubbo每次分发请求。

四、最少活跃调用数模式

最少活跃调用数表示为服务器节点处理接口的能力,处理接口约耗时则活跃数约小,系统会使慢的节点约少接收到请求。配置方式loadbalance="leastactive"。(使用最小活跃调用数时,不要配置权重不然失去了该模式意义)当启动两个服务后通过接口中睡眠时间来模拟接口处理能力,通过控制台可以看到睡眠时间越小的节点获取的请求越多。耗时越久的接收的请求越小。

五、一致性Hash模式

一致性hash模式表示相同接口相同参数的请求将固定发送到某一个节点。在Service注解中使用loadbalance="consistenthash"进行设置。

我们在测试访问时,使用不同的参数111,222,333分别进行测试。通过控制台可以看出某个参数第一次出现在某个节点后,后续的同一个请求同一参数的都将分配在该节点上。

Dubbo(十三)dubbo的负载均衡配置策略相关推荐

  1. Nginx负载均衡配置策略

    转自:http://www.freeoa.net/osuport/cluster/nginx-load-equilibrium-configuration-strategy_1652.html Ngi ...

  2. Nginx负载均衡配置教程-Linux

    引言 别问,问就是工作需要.让我把写的一个服务用Nginx负载均衡一下. 正好记录一下. 1. 准备 确保你的Nginx已经安装完毕,且可以正常使用.如果还没安装,请看这个链接:https://blo ...

  3. springboot dubbo负载均衡配置

    springboot dubbo负载均衡配置 1.多zookeeper yml配置 2.负载配置 random roundRobin leastActive consistentHash 1.多zoo ...

  4. Dubbo 负载均衡配置

    Dubbo 负载均衡配置 Dubbo 提供了4种负载均衡实现,分别是基于权重随机算法的 RandomLoadBalance.基于最少活跃调用数算法的 LeastActiveLoadBalance.基于 ...

  5. Dubbo面试杀招--Dubbo集群容错负载均衡

    点赞再看,养成习惯,微信搜一搜[三太子敖丙]关注这个喜欢写情怀的程序员. 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点.资料以及我的系 ...

  6. Tomcat集群快速入门:Nginx负载均衡配置,常用策略,场景及特点

    Nginx负载均衡的配置,常用策略,场景,以及特点,放到这里是需要更细化的讲解,毕竟一期还没有做集群,而我们这一期做集群的时候,很多点要单独拿出来深入讲解,第一个轮询,默认的一个配置,简单也好理解,第 ...

  7. oracle负载均衡方案,Oracle负载均衡配置代码

    对于专业的数据处理存储的Oracle ARC而言,负载均衡的设置就更为重要了.那么如何对Oracle负载均衡进行配置呢?就让我们一起看看本文来学习一下吧.我们将从客户端和服务器端来进行解说. Orac ...

  8. 地址设置nginx负载均衡_nginx负载均衡配置实例

    什么是负载均衡? 负载均衡主要通过专门的硬件设备或者通过软件算法实现.通过硬件设备实现的负载均衡效果好.效率高.性能稳定,但是成本比较高.通过软件实现的负载均衡主要依赖于均衡算法的选择和程序的健壮性. ...

  9. VMware ESX 主机的网卡负载均衡配置3种方法

    VMware ESX 5.0 网卡负载均衡配置3种方法 (1) 基于端口的负载均衡 (Route based on the originating virtual port ID)(这个是默认支持) ...

最新文章

  1. NoSQL实现(3)——Cassandra
  2. 文件和目录之stat、fstat和lstat函数
  3. 访问者模式讨论篇:java的动态绑定与双分派
  4. Netweaver 服务器和客户端TLS版本号不匹配的解决方案
  5. 浅入深出被人看扁的逻辑回归!
  6. rails关于utf8问题-------------------utf8申明必须置顶
  7. 数据结构知识点总结pdf_闭关修炼31天,“啃完”346页pdf,我终于四面拿下阿里offer!...
  8. 固高运动卡的使用 3 运动之Jog运动
  9. TimesTen索引的概念与日常操作
  10. 苹果手机投屏电脑win7
  11. 第11章 Docker 中 Gitlab 的安装与配置
  12. 一文了解驱动程序及更新方法
  13. 物联网案例_讨论物联网采用的商业案例
  14. 不撞南墙不回头-深度优先搜索
  15. 华为面试题: 杨辉三角形的变形
  16. 期末小结(一). 专业技术
  17. Kindle阅读器(KPW、KV、KO)怎么导入电子书?
  18. Mybatis——增删改查CLUD
  19. 2022安全员-C证特种作业证考试题库及答案
  20. 10分钟掌握百度竞价数据分析思路

热门文章

  1. Python学习笔记之函数(五)
  2. Struts2输入校验之validate输入校验方式
  3. SSM项目使用Idea打war包
  4. Ranger-Kylin插件安装
  5. matplotlib绘图_手把手教你使用Matplotlib绘图实战
  6. STL(一)——栈及其应用
  7. python watchdog的使用_python watchdog监控文件修改
  8. MySQL 8下忘密码后重置密码的办法(MySQL5老方法不灵了)
  9. 为view添加约束constraints
  10. iOS平台经典游戏《合金弹头X》上架 售价25元