首页 新闻 会员 周边

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

0
悬赏园豆:60 [已解决问题] 解决于 2018-09-13 16:31

我看到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实现的

时光之书的主页 时光之书 | 初学一级 | 园豆:12
提问于:2018-09-13 15:35
< >
分享
最佳答案
1

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

时光之书 | 初学一级 |园豆:12 | 2018-09-13 16:31
其他回答(1)
0

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

春眠不觉笑 | 园豆:204 (菜鸟二级) | 2018-09-14 15:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册