介绍了dubbo基本的架构之后,我们先学会使用它,会使用了才有可能理解它的原理。本节先来搭建注册中心和dubbo的可视化控制台界面,为后续的dubbo应用的搭建做好准备。

一、注册中心

打开官方文档,我们会看到dubbo支持很多种注册中心,但是它写了:**推荐使用 Zookeeper 注册中心。**关于zookeeper我已经做了系统学习。

zookeeper 注册中心详细说明了zk的作用以及代码中客户端的使用。

image

我们知道zk是一颗树型的目录服务,支持变更推送,适合作为 Dubbo 服务的注册中心

流程说明:

  • 服务提供者启动时: 向 /dubbo/com.foo.BarService/providers 目录下写入自己的 URL 地址
  • 服务消费者启动时: 订阅 /dubbo/com.foo.BarService/providers 目录下的提供者 URL 地址。并向 /dubbo/com.foo.BarService/consumers 目录下写入自己的 URL 地址
  • 监控中心启动时: 订阅 /dubbo/com.foo.BarService 目录下的所有提供者和消费者 URL 地址。

支持以下功能:

  • 当提供者出现断电等异常停机时,注册中心能自动删除提供者信息
  • 当注册中心重启时,能自动恢复注册数据,以及订阅请求
  • 当会话过期时,能自动恢复注册数据,以及订阅请求
  • 当设置 <dubbo:registry check=“false” /> 时,记录失败注册和订阅请求,后台定时重试
  • 可通过 <dubbo:registry username=“admin” password=“1234” /> 设置 zookeeper 登录信息
  • 可通过 <dubbo:registry group=“dubbo” /> 设置 zookeeper 的根节点,不设置将使用无根树
  • 支持 * 号通配符 <dubbo:reference group=" * " version=" * " />,可订阅服务的所有分组和所有版本的提供者

Dubbo 支持 zkclientcurator 两种 Zookeeper 客户端实现。

二、zookeeper 安装

就在windows下先安装练习吧!其他系统的也差不多。

注意一下直接启动不行的,要将conf下的zoo_sample.cfg改为zoo.cfg才行,默认的端口是2181,注意修改一下临时数据存放的路径。这些修改完成之后,windows下就可以直接在命令行中用zkServer.cmd启动了。

三、new dubbo admin

什么是dubbo admin?是图形化服务管理页面,安装时需要指定注册中心地址,即可从注册中心中获取到所有的提供者/消费者进行配置管理。

1
2
3
4
5
git clone https://github.com/apache/incubator-dubbo-ops.git
cd incubator-dubbo-ops
mvn clean package
cd dubbo-admin-distribution/target
java -jar dubbo-admin-0.1.jar

访问http://localhost:8080即可。

image

我们看到克隆下来之后其实有三个文件:dubbo-admin-distributiondubbo-admin-serverdubbo-admin-ui,根据官网介绍,我们只需要对第一个进行打包然后java -jar即可。后面两个是前后端分离的部署方式。所以我们主要来看看dubbo-admin-server

1
2
3
admin.config-center=zookeeper://127.0.0.1:2181
admin.registry.address=zookeeper://127.0.0.1:2181
admin.metadata-report.address=zookeeper://127.0.0.1:2181

三个配置项分别指定了配置中心,注册中心和元数据中心的地址。这个以后再去了解。OK,下一节来看看dubbo的providerconsumer是如何暴露服务以及消费服务的。

以上为新版的管理控制台,但是我看还是develop分支,说明还不是很稳定,文档啥的也不是很全,就暂时不入坑了。我们还是回到2.6版本。上一版本,admin管理台和monitor监控是分开的。这里说一下老版本的admin。

四、old dubbo admin

下载地址:
incubator-dubbo-ops-master.zip

主要是先关注里面的dubbo-admin,他就是老版本服务治理的管理页面。注意源码里面里面的application.properties中连接zk的信息,匹配即可。先启动zk,然后对这个文件夹打包运行。默认是用localhost:7001打开。需要额外输入用户名和密码,默认都是root

image

下面我就还是用这个版本对服务进行管理吧!

五、dubbo-monitor-simple

这是一个简单的监控中心。

incubator-dubbo-ops-master文件夹下有一个文件叫做dubbo-monitor-simple,进行mvn package之后为:

image

将其拷贝到另外一个地方解压。里面有三个文件夹,有一个是conf文件夹,我们编辑dubbo.properties这个文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
dubbo.container=log4j,spring,registry,jetty-monitor
dubbo.application.name=simple-monitor
dubbo.application.owner=dubbo
#dubbo.registry.address=multicast://224.5.6.7:1234
//ZK的地址
dubbo.registry.address=zookeeper://127.0.0.1:2181
#dubbo.registry.address=redis://127.0.0.1:6379
#dubbo.registry.address=dubbo://127.0.0.1:9090
//与本控制台通信的端口
dubbo.protocol.port=7070
//可视化界面的访问端口
dubbo.jetty.port=8080
dubbo.jetty.directory=${user.home}/monitor
dubbo.charts.directory=${user.home}/monitor/charts
dubbo.statistics.directory=${user.home}/monitor/statistics
dubbo.log4j.file=logs/dubbo-monitor-simple.log
dubbo.log4j.level=WARN

一切没有问题,来到assembly.bin下去启动吧!启动成功的话为:

image

下面进行实操并且结合这边搭建的监控台一起观察观察。