服务治理框架dubbo中zookeeper的使用
Zookeeper提供了一套很好的分布式集群管理的机制,就是它这猴子那个几月层次型的目录树的数据结构,并对书中的节点进行有效的管理,从而可以设计出多种多样的分布式的数据管理模型;下面简要介绍下zookeeper在Dubbo中的应用。
dubbo主要解决了下图中描述的问题,像阿里巴巴这种规模的互联网公司,旗下拥有一系列产品:淘宝、天猫、阿里旅行等。各个系统之间的业务具有一定程度的耦合性,例如支付业务。如果按照传统的网站开发模式,将这些内部系统完全独立割裂,那么意味着,对于所有相同的业务逻辑,所有的系统都需要实现一遍,如果该公共模块发生变化,那么所有的系统需要重新出包发版本上线,随着公共模块数量的增加,这种耦合性对于后期迭代和运维而言无疑是一种灾难。
为了解决上述的问题,阿里巴巴推出了强大的服务治理框架Dubbo,不同的系统要使用相同的模块,通过dubbo的方式去调用,主要有以下的过程,下面以支付服务为例进行说明:
1-将开发好的RPC支付服务注册到Dubbo中;
2-内部系统注入Dubbo客户端接口。实际上是注入一个动态代理,来调用中间件;
3-内部系统拿到调用中间件获取的服务地址,然后去调用该服务;
所以支付服务的调用者(内部系统1、2、3.。。)不需要关注该服务到底部署在那些节点上面,以及这些节点上面的负载均衡状态。这所有的一切都是由Dubbo进行管理,并告知调用者应该去调用哪一个节点。
二Dubbo之所以能实现这种功能全依赖于ZooKeeper。