Dubbo将自己的注册中心抽象出来,可以接入外面不同的第三方注册中心;比如:ZooKeeper,Memcached,Redis等。
我们引入Zookeeper作为存储媒介,其实也就引入Zookeeper特性引入了进来;
- 负载均衡:注册中心的承载能力是有限的,当流量超过承载能力以后,我们就需要分流;
- 资源同步:单单有负载均衡还不够,节点之间的数据和资源需要同步,ZooKeeper集群就天然具备有这样的功能;
- 命名服务:将树状结构用于维护全局的服务地址列表,服务提供者在启动 的时候,向ZK上的指定节点/dubbo/${serviceName}/providers目录下写入自己的URL地址,这个操作就完成了服务的发布。
- 其他特性:分布式锁、Mast选举;
简单点讲:
Zookeeper就是一个动物园管理员,Dubbo各种服务就是各种动物。
各种动物之间需要相互调用功能的时候,需要管理员在中间进行调节。在动物员人流量大的情况下的时候,会调节各个动物模块之间的负载均衡,主从关系,命名服务,以及各个服务之间的资源的同步;