zookeeper+dubbo是怎么实现负载均衡的

2019-01-02 22:29发布

我看到dubbo把zookeeper当作注册中心,只是在/dubbo结构下,把所有的bean的提供方和消费者的信息都存在里面而已,分布式的实现原理我理解了。但是负载均衡他到底是怎么实现的,还有就是负载均衡权重怎么配置。

dubbo://192.168.56.1:9091/com.service.IUserService?anyhost=true&application=server-1&dubbo=2.6.1&generic=false&interface=com.service.IUserService&methods=echo&pid=5596&side=provider&timestamp=1536823742776

dubbo://192.168.56.1:9092/com.service.IUserService?anyhost=true&application=server-2&dubbo=2.6.1&generic=false&interface=com.service.IUserService&methods=echo&pid=11792&side=provider&timestamp=1536823783458

这个我不太理解,zookeeper只是存了这两个提供方的dubbo信息,总感觉负载均衡不属于zookeeper的范畴。负载均衡到底是zookeeper实现的,还是dubbo实现的

2条回答
forever°为你锁心
2楼-- · 2019-01-02 22:52

ZooKeeper会维护一个树形的数据结构,类似于Windows资源管理器目录,其中EPHEMERAL类型的节点会随着创建它的客户端断开而被删除,利用这个特性很容易实现软负载均衡。
基本原理是,每个应用的Server启动时创建一个EPHEMERAL节点,应用客户端通过读取节点列表获得可用服务器列表,并订阅节点事件,有Server宕机断开时触发事件,客户端监测到后把该Server从可用列表中删除。

查看更多
你好瞎i
3楼-- · 2019-01-02 23:05

zookeeper自己本身没有负载均衡功能,但是他的特性可以借助其他方法实现类似负载均衡的能力。比如dubbo消费者取得了服务器列表之后,会随机调用其中的一个。就实现了类似负载均衡。

查看更多
登录 后发表回答