Dubbo

一. 服务发现

  1. Dubbo 提供的是一种 Client-Based 的服务发现机制,依赖第三方注册中心组件来协调服务发现过程,支持常用的注册中心如 Nacos、Consul、Zookeeper 等。
  2. 生产者、消费者和注册中心模式。(类似于rocketmq)
  3. Dubbo3在性能、可伸缩性、易用性等方面的表现大幅领先于业界大多数主流开源产品。
  4. Dubbo3 创建了一个平滑迁移方案。(例:消费者只订阅自己依赖的应用)

二、负载均衡

负载均衡策略

算法 特性 备注
Weighted Random LoadBalance 加权随机 默认算法,默认权重相同
RoundRobin LoadBalance 加权轮询 借鉴于Nginx的平滑加权轮询算法,默认权重相同
LeastActive LoadBalance 最少活跃优先 + 加权随机 背后是能者多劳的思想
Shortest-Response LoadBalance 最短响应优先 + 加权随机 更加关注响应速度
ConsistentHash LoadBalance 一致性哈希 确定的入参,确定的提供者,适用于有状态请求
P2C LoadBalance Power of Two Choice 随机选择两个节点后,继续选择“连接数”较小的那个节点。
Adaptive LoadBalance 自适应负载均衡 在 P2C 算法基础上,选择二者中 load 最小的那个节点
  1. 加权随机和加权轮询对于个别慢的服务器,会存在生产者请求累计。(消费不完)
  2. 加权策略举例: A(3) B(2) C(1),权重分别为3 2 1,权重和为6;先将最大的减去权重和即A:3-6=-3; 再各自加上其权重为: A(0) B(4) C(2)。

Nacos (Dynamic Naming and Configuration Service 动态命名与配置服务)