Dubbo的负载均衡

1.集群,分布式,负载均衡概念

集群:一个内容,部署多次,形成的整体称为集群。集群中每个个体应该部署到不同的服务器上。

伪集群:集群中内容部署到同一台服务器上,通过不同端口区分不同个体。

负载均衡:在集群前提下,当访问整个集群时,集群中每个节点被访问次数或频率的规则。

分布式:一个整体把拆分成不同的独立模块功能分开部署,这些独立模块部署的时候也可以用集群方式部署

2.Dubbo的负载均衡策略

Random:默认策略,随机。随机访问集群中节点。访问概率和权重有关。

RoundRobin:

轮询。访问频率和权重有关。

权重(weight):占有比例。集群中每个项目部署的服务器的性能可能是不同,性能好的服务器权重应该高一些。

LeastActive:活跃数相同的随机,不同的活跃数高的放前面。基本不用

ConsistentHash:一致性Hash。相同参数请求总是发到一个提供者。基本不用

在调用方设置@Reference

@Reference(loadbalance = "roundrobin")
private DemoDubboService demoDubboService;

在服务提供方设置@Service

@Service(loadbalance = "random")
//@Service(weight = 4)
public class DemoDubboServiceImpl implements DemoDubboService {}

配置文件中全局设置所有provider和consumer的负载均衡效果

dubbo:
application:
 name: dubbo-provider
registry:
 address: zookeeper://127.0.0.1:2181
protocol:
 port: 20884
provider:
 loadbalance: random
consumer:
 loadbalance: random
上一篇:服务注册发现实战


下一篇:Dubbo负载均衡和路由规则的区别