前提:因为我最近跟的项目里涉及到zookeeper和dubbo,测试环境需要测试人员自己维护,所以需要了解zookeeper和dubbo大概都是怎么工作的,怎么部署和其他服务联系起来不出错
先说说zookeeper是干什么的:经过查阅资料,给我的感觉是zookeeper和Nginx做的工作很像,就是分流负载均衡服务器用的。使用场景就是,服务器A要调用服务器B,但是服务器B是分布式的,有多个,因此让所有的服务器B都在zookeeper上注册一下,然后服务器A调用服务器B的时候就不需要关心到底调哪台具体的机器了,我找到以下这张图简单明了的说明了结构。
(参考:https://www.cnblogs.com/shiyu404/p/8945542.html)
再说说dubbo是干什么的:我通俗的理解是,dubbo是一个框架,就像springboot,springcloud等这些一样都是一种框架,设计思维的东西,这种框架主要服务于这种情况:就像我们现在的项目一样,一个项目但是web层和service层分开成了俩服务,现在分布式项目都这样,这俩服务又需要通信,怎么才能通信呢,现在有了dubbo,dubbo就像一个圈子,把这俩服务都放在圈子里就在同一个环境下了,就可以通信了
然后结合dubbo和zookeeper:就是既要服务之间通信,又要满足负载均衡去调多个服务器,于是就有了在dubbo环境下配个zookeeper,实现这个功能,并不是非要dubbo就用zookeeper,只是大家都用zookeeper而已。
然后我们要说下测试人员需要注意的地方:配环境的时候,首先dubbo上是要配置zookeeper的地址的,所以第一步,要先把zookeeper服务起来,然后再起dubbo,最后,哪些服务用到了zookeeper,哪些服务在dubbo环境下,就要在那些应用的配置文件里修改zookeeper的配置信息和dubbo的配置信息,才能正确启动
PS:另一种实现分布式调用的方式是springcloud,参考以下大神总结的文章,看看这俩之间的区别是什么
https://www.cnblogs.com/hirampeng/p/9540243.html