概述
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是一个分布式的,开源的,分布式应用程序协调服务,是google的的chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。
zookeeper封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户,提供java和C的接口。
那什么是分布式应用程序呢?应用程序分布在不同的计算机上,通过网络来共同完成一项任务,通常为服务器/客户端模式。
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 Election(leader选举)。比如HBase的Master就是采用这种机制。
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所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复