我是靠谱客的博主 快乐玫瑰,最近开发中收集的这篇文章主要介绍(四)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注册中心消费者和服务者的信息


   

最后

以上就是快乐玫瑰为你收集整理的(四)dubbo注册中心-zookeeper的全部内容,希望文章能够帮你解决(四)dubbo注册中心-zookeeper所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部