Window Dubbo + Zookeeper架构入门
1、初接触的分布式项目,使用到了dubbo,zookeeper,之前没有使用过,项目架构大致如下:

2、一、dubbo简单介绍使用dubbo官网的一张图来简单介绍下dubbo:

3、Registry:注册中心,相当于房产中介,服务提供者和使用者都需要在烂瘀佐栾这里注册/使用服务,我使用zookeeper实禊耗髻编现。Monitor:监控中心,相当于房产局,它可以统计服务提供者和服务使用者的一些信息,及他们之间的关系,我使用dubbo admin实现。Provider:服务提供者,相当于房东,提供服务。Consumer:服务消费者,想当于租户,使用服务。
4、下面我通俗的解释下dub水瑞侮瑜bo的整个流程,我将服务比喻成房子:start:dubbo一启动,房东想好自己骠雪餐豺准备要租出去的房子register:房东将房子拿到房产中介那边进行登记,并留下自己的联系方式subscribe:租户告诉房产中介自己想租一个什么样的房子notify:房产中介回复给租户符合条件的房子的房东的联系方式invoke:租户拿着联系方式去找房东租房子count:房产局全程监控着房东和租户之间的交易其中:start、register、subscribe在dubbo服务一启动就完成了notify、count是异步执行的invoke是同步执行的
5、二、搭建zookeeper下载zookeeper-3.4.12下载后将其解压:

6、在zookper文件夹下建立data文件夹用于存放日志和数据;进入conf目录,对zoo.cfg其进行修改;配置下dataDir路径,为之前创建的两个文件夹的路径,clientPort使用默认的2181端口即可:

7、进入到bin目录,启动服务即可:

8、三、搭建dubbo监皮薹匆热控中心版本要求:请使用dubbo-admin-2.5.6.war及以上版本,否则会不支持JDK1.8!小心踩坑:如果你的zookeeper和dubbo-admin在一台服务器上,dubbo-admin不用修改任何内容!如果不在一台服务器上,将war包解压后,修改项目/WEF-INF/dubbo.properties文件,将zookeeper地址改为其所在服务器的地址(这里同时能修改root用户和guest用户的密码)。

9、四、配置项目这里牵扯到项目代码,如果看不懂,可以下载文章开头的项目源码,或者直接使用官方提供的dubbo-demo,更为简单。首先给服务提供方和服务使用方导入依赖包:

10、还需要在相关配置文件加上dubbo的bean的头部约束,将下面的添加到bean头部即可:

11、1 服务提供方代码对于服务提供方,如果我们想要TbItemService对外提供服务:

12、需要修改spring关于servi罕铞泱殳ce的配置文件,加入dubbo的配置信息:dubbo:applicat足毂忍珩ion:提供方的应用名dubbo:registry:注册中心的类型和地址dubbo:protocol:这个服务要暴露在哪个端口上(使用方根据这个端口使用服务)dubbo:service:设置暴露的服务的接口,ref为该接口的bean,timeout为超时时间

13、2 服务使用方代码服务使用方,我使用Spring MVC来实现,修改Spring MVC的配置文件,加入dubbo的配置:dubbo:application: 使用方的应用名dubbo:registry:注册中心的类型和地址dubbo:reference:要使用的服务的接口,并将返回的注入bean,名称为id设的值

14、如果配置没有问题的话,现在使用方已经能够使用提供方提供的服务了,直接将tbItemService注入进来即可:

15、五、测试服务器上分别启动zookper和tomcat分别启动服务提供方的项目和服务使用方的项目:测试下/items/{id}这个API:成功!下面再访问下监控中心,因为监控中心和zookeeper在一台服务器上,我的tomcat部署在8888端口,即访问192.168.30.145:8888/dubbo-admin即可,用户名密码默认为root:

16、查看所有注册的服务:

17、查看包括消费者和提供者的所有应用名:

18、消费者、提供者详细信息:
