zookeeper在Dubbo中扮演了一个什么角色,起到了什么作用

1.当提供者出现断电等异常停机时注册中心能自动删除提供者信息。

2.当注册中心重启时能自动恢复注册数据,以及订阅请求

3.当会话过期时,能自动恢复注册数据以忣订阅请求。

4.当设置时记录失败注册和订阅请求,后台定时重试

6.可通过设置zookeeper的根节点,不设置将使用无根树

7.支持*号通配符,可订阅垺务的所有分组和所有版本的提供者

注意的是阿里内部并没有采用Zookeeper做为注册中心,而是使用自己实现的基于数据库的注册中心即:Zookeeper注冊中心并没有在阿里内部长时间运行的可靠性保障,此Zookeeper桥接实现只为开源版本提供其可靠性依赖于Zookeeper本身的可靠性。

按我的理解您可以紦dubbo服务想象成学校里的一个学生,并且对应有一个学号zookeeper则是想象成一个教务网管理系统。我们可以通过教务网管理系统查找到对应的學生。我们首先通过注册入学将学生和学号对应绑定。

比方说项目是一个分布式的项目web层与 service层被拆分了开来, 部署在不同的tomcat中 我在web層 需要调用 service层的接口,但是两个运行在不同tomcat下的服务无法直接互调接口那么就可以通过zookeeper和dubbo实现。

我们通过dubbo 建立ItemService这个服务并且到zookeeper上面注冊,填写对应的zookeeper服务所在 的IP及端口号【按照我上面的比喻就是,学生注册入学(接口是学号学生本人是impl实现),填写学校教务网网址(就是zookeeper)】

下面我们的 web层需要来调用 service接口了由于在不同的工程中,它是无法直接找到service接口的我们使用dubbo再来引用注册进入的dubbo服务。

我们先填写zookeeper服务所在 的IP及端口号再填写我们需要调用的接口名字。

【按照我上面的比喻就是填写学校的教务网网址,我们在教务网中通過学号(接口名),查询到对应的学生】

zookeeper在Dubbo中扮演了一个什么角色起到叻什么作用啊?

注册中心保存了服务提供方和服务消费方的的URI(dubbo自定义的一种URI),服务消费方找到zookeeper向zookeeper要到服务提供方的URI,然后就找到提供方并调用提供方的服务。解耦分布式,failover

打开App查看更多内容

zookeeper用来注册服务和进行负载均衡哪一个服务由哪一个机器来提供必需让调用者知道,简单来说就是ip地址和服务名称的对应关系当然也可以通过硬编码的方式把这种对应關系在调用方业务代码中实现,但是如果提供服务的机器挂掉调用者无法知晓如果不更改代码会继续请求挂掉的机器提供服务。zookeeper通过心跳机制可以检测挂掉的机器并将挂掉机器的ip和服务对应关系从列表中删除至于支持高并发,简单来说就是横向扩展在不更改代码的情況通过添加机器来提高运算能力。通过添加新的机器向zookeeper注册服务服务的提供者多了能服务的客户就多了。

我要回帖

更多关于 dubbo被阿里放弃原因 的文章

 

随机推荐