###1.ZooKeeper 服务治理中心
点我下载
下载后解压,修改 zookeeper-3.4.11/conf 文件夹里面的 zoo.cfg 文件
- 设置配置项 dataDir 为一个存在的以 data 结尾的目录
- 设置 Zookeeper 的监听端口 clientPort=2181
- 设置 Zookeeper 心跳检查间隔 tickTime = 2000
- 设置 Follower 服务器启动时候从 Leader 同步完毕数据能忍受多少个心跳时间间隔数 initLimit=5
- 设置运行过程中 Leader 同步数据到 Follower 后,Follower 回复信息到 Leader 的超时时间 syncLimit=2,如果 Leader 超过 syncLimit 个 tickTime 的时间长度,还没有收到 Follower响应,那么就认为这个 Follower 已经不在线了
双击bin
目录下面的zkServer.cmd
启动zookeeper
如图所示则服务注册中心搭建完毕,dubbo 即可在此注册消费者与提供者(启动闪退看这里)
###2.Admin管理平台
我们需要到 GitHub 上下载 Dubbo 的源码,解压后在 dubbo-2.5.x 目录执行 mvn clean package -Dmaven.test.skip=true
会生成如下结果:
进入 Downloads/dubbo-2.5.x/dubbo-admin/target 目录,会发现生成了 dubbo-admin-2.5.10.war。
进入 Downloads/dubbo-2.5.x/dubbo-simple/dubbo-monitor-simple/target 目录,会发现生成了 dubbo-monitor-simple-2.5.10-assembly.tar.gz。
这里我们直接提供 dubbo-admin-2.5.10.war
点我下载
开源的 Dubbo 的服务管理控制台是阿里巴巴内部裁剪版本,开源部分主要包含:路由规则、动态配置、服务降级、访问控制、权重调整、负载均衡等管理功能。
我们只需要拷贝到一个 Servlet 容器,本文使用 Tomcat 容器,然后拷贝 dubbo-admin-2.5.10 到 apache-tomcat-7.0.10/webapps 目录下,然后进入 dubbo-admin-2.5.10/WEB-INF 目录修改 dubbo.properties 文件:
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest
这里的 dubbo.registry.address 为 ZooKeeper 的地址。
最后在 apache-tomcat-7.0.10/bin 下执行 startup.bat
启动 Tomcat。
启动后访问 http://127.0.0.1:8080/dubbo-admin-2.5.10/ 会出现下面界面:
至此说明管理控制台搭建完毕了。
现在你就可以使用管理控制台管理和查看服务信息了,查看服务消费者,查看服务提供者,查看当前都有哪些应用:
注: 管理控制台不是使用 Dubbo 搭建分布式系统必须的,但是有了它我们可以对服务进行很好的治理和监控。
###3.Monitor监控中心
Dubbo-Monitor 主要用来统计服务的调用次数和调用时间,服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心,监控中心则使用数据绘制图表来显示。
服务消费方和提供方需要显示开启 Monitor。
如果使用 Spring 配置的服务消费方和提供方,则需要在对应 XML 添加下面配置:
<dubbo:monitor protocol="registry"/>
其中 protocol 为“registry”,表示服务提供方和消费方从服务注册中心发现监控中心(Monitor)地址。
如果使用的 Dubbo API 方式需要首先创建一个 MonitorConfig 对象。
MonitorConfig monitorConfig = new MonitorConfig();
monitorConfig.setProtocol("registry");
然后调用 reference.setMonitor(monitorConfig);
设置到消费配置对象里面。
同样我们下载dubbo源码之后解压打包,这里提供下载点我下载
解压 dubbo-monitor-simple-2.5.10-assembly.tar.gz,进入 dubbo-monitor-simple-2.5.10/conf/ 目录修改 dubbo.properties
dubbo.container=log4j,spring,registry,jetty
dubbo.application.name=simple-monitor
dubbo.application.owner=
#dubbo.registry.address=multicast://224.5.6.7:1234
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=8081
dubbo.jetty.directory=${user.home}/monitor
dubbo.charts.directory=${dubbo.jetty.directory}/charts
dubbo.statistics.directory=${user.home}/monitor/statistics
dubbo.log4j.file=logs/dubbo-monitor-simple.log
dubbo.log4j.level=WARN
其中 dubbo.registry.address=zookeeper://127.0.0.1:2181 设置注册中心地址,这里设置为 ZooKeeper 的地址。
dubbo.protocol.port=7070,是 Monitor 提供的远程服务监听端口,服务提供者和消费者会调用这个端口提供的服务,发送统计信息到 Monitor。
dubbo.charts.directory 和 dubbo.statistics.directory 为 Monitor 本地存放的监控数据文件的位置。
dubbo.jetty.port=8081,设置 Jetty 容器的监听地址,类似于 Tomcat 的8080端口,这里设置为8081。
然后进入 dubbo-monitor-simple-2.5.10/bin,执行 start.bat
启动 Monitor:
至此 Monitor 启动了,访问 http://127.0.0.1:8081/ 会出现下面界面:
然后我们就可以使用监控平台做一些事情了。比如服务查看,应用程序查看,调用情况统计
注: Dubbo-Monitor 也不是使用 Dubbo 搭建分布式系统必须的组件,但是它用来统计服务的调用次调和调用时间的监控中心,这些数据有助于系统运维和调优。