多语言展示
当前在线:921今日阅读:27今日分享:41

Window Dubbo + Zookeeper架构入门

一、dubbo简单介绍二、搭建zookeeper三、搭建dubbo监控中心四、配置项目五、测试
工具/原料
1

dubbo

2

zookeeper

方法/步骤
1

初接触的分布式项目,使用到了dubbo,zookeeper,之前没有使用过,项目架构大致如下:

2

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

3

Registry:注册中心,相当于房产中介,服务提供者和使用者都需要在这里注册/使用服务,我使用zookeeper实现。Monitor:监控中心,相当于房产局,它可以统计服务提供者和服务使用者的一些信息,及他们之间的关系,我使用dubbo admin实现。Provider:服务提供者,相当于房东,提供服务。Consumer:服务消费者,想当于租户,使用服务。

4

下面我通俗的解释下dubbo的整个流程,我将服务比喻成房子: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

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

12

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

13

4.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

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

推荐信息