(四)dubbo注册中心-zookeeper

1、dubbo支持的注册中心有

 

       Zookeeper注册中心

       Redis注册中心

       Multicast注册中心

       Simple注册中心

 

       dubbo官网上dubbo2.3.3以上版本推荐使用zookeeper注册中心。

 

2、什么是zookeeper


       zookeeper中的英文意思来看,zookeeper是动物管理员的意思,动物管理员是负责照顾动物的。同理,我们这里的zookeeper也是如此,负责配置管理,分布式同步以及集群管理。
   官网上是这样说的:Zookeeper is a centralized servicefor maintaining configuration information, naming,providing distributed synchronization, and providinggroup services.

 

       zookeeper是一个分布式的,开源的,分布式应用程序协调服务,是googlechubby一个开源的实现,是HadoopHbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。

 

       zookeeper封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户,提供javaC的接口。

 

       那什么是分布式应用程序呢?应用程序分布在不同的计算机上,通过网络来共同完成一项任务,通常为服务器/客户端模式。


 3、为什么使用Zookeeper


     3.1 配置管理

      我们在项目中经常会引入一些配置文件,例如DB配置文件,接口调用配置文件以及一些固定参数使用的配置文件,如果只有一种配置,且只用一台服务器,并且配置文件不经常需要修改的时候,那通过手动的修改配置文件,效率上还算可以。可是当我们需要部署到多台服务器的时候,就需要修改多台服务器的配置文件,十分繁琐,这时候我们可能会这样操作,把一些配置放我数据库中,从数据库中读取。当很多服务都依赖于这个配置的时候,所以要求提供配置的服务可靠性,可以使用集群来提供配置服务,但如何保证配置的一致性呢?这就是需要使用实现了一致性服务的实现了,zookeeper就是这种服务,它使用Zab这种一致性协议来提供一致性。

       例如很多开源的项目使用的就是Zookeeper来维护配置,比如HBase中,客户端就是连接一个Zookeeper获得必要的HBase集群配置信息,然后进一步操作。

       还有开源的Kafka中,也使用zookeeper来维护broker的信息。

       soa的框架Dubbo中也广泛使用Zookeeper管理配置来实现服务治理。


       3.2 名字服务

       名字服务就是DNS这个东西,域名和ip的映射,在这里zookeeper可以保存多个服务地址,这样对服务地址的维护更加方便。

 

      3.3 分布式锁

      Zookeeper是一个分布式协调服务。这样我们就可以利用zookeeper来协调多个分布式进程之间的活动。比如在一个分布式的环境中,每台机器上都部署着同样的服务。但是,集群中的每个服务器都进行的话,要相互协调,通过编程来执行,是极其复杂的。而只让一个服务操作,又失去了集群的本身意义。通常我们还有一种做法是使用分布式锁,某一个时刻只让一个服务区干活,当这台服务器出现问题的时候,立即fail over(失效备援)到另一台服务器。很多分布式系统就是这样做的,这种设计叫做Leader Electionleader选举)。比如HBaseMaster就是采用这种机制。


       3.4 集群管理

       在分布式集群中,经常会出现一些各种原因,比如硬件故障,软件故障,网络问题,有些节点进进出出。有的节点增加进来,也有老的节点退出集群。这个时候集群中的其他机器需要感知到这种变化,然后根据这种变化做相应的决策。比如,分布式存储,有新节点增加和旧节点退出时,要根据目前的状态来分配存储点,着时候就要感知集群目前状态。

例如,在分布式SOA架构中,服务是集群提供的,当消费者访问某个服务的时候,就要采用某种机制发现心在哪些节点是可以提供服务的。

       所以一些SOA框架就是采用zookeeper来作为服务发现底层机制的。


 

4、zookeeper流程说明



     4.1 服务提供者启动

          /dubbo/com.foo.BarService/providers目录下写入自己的URL地址。


       4.2 消费者启动时

          订阅/dubbo/com.foo.BarService/providers目录下的提供者URL地址。

          并向/dubbo/com.foo.BarService/consumers目录下写入自己的URL地址。


       4.3 监控中心启动时

          /dubbo/com.foo.BarService目录下所有提供者和消费者的URL地址。

 

       直接上图:

       zkUI中可以看到zookeeper注册中心消费者和服务者的信息


   

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值