dubbo服务原理图:
原理图
1. Dubbo服务管理和监控的选择
Dubbo服务的监控官方提供dubbo-monitor-simple, 韩都衣舍的dubbo-monitor-x, 还有dubbokeeper
下面推荐几种搭配:
a: 官方的dubbo-admin + 韩都的dubbo-monitor-x
b: 全官方的dubbo-admin + dubbo-monitor-simple
c: dubbokeeper 一套
试验过dubbo-monitor安装和测试效果不是太好,最近有测试dubbokeeper,他包括了管理和监控,并且和透视zookeeper其他中心.但是这里发现监控的数据准确性不高。监控只是一方面,真正还是希望发送故障时可以第一时间告警,dubbokeeper没有告警功能。
2. Dubbokeeper服务安装和配置
下载源码
git clone https://github.com/dubboclub/dubbokeeper.git
用mysql存储,先执行根目录下的
install-mysql.sh
在target目录下 监控数据存储和收集
dubbokeeper/target/mysql-dubbokeeper-server/mysql-server/conf 修改这里面的配置
配置监控的zookeeper注册中心
dubbo.application.name=mysql-monitor
dubbo.application.owner=bieber
dubbo.registry.address=zookeeper://192.168.15.203:2181
dubbo.protocol.name=dubbo
dubbo.protocol.port=20884
monitor.collect.interval=10000
#use netty4
dubbo.provider.transporter=netty4
monitor.write.interval=60
#mysql配置 如果是远程的localhost改为mysql所做主机mysql 端口根据需要修改。后面的是你创建用来存储监控的数据库名
dubbo.monitor.mysql.url=jdbc:mysql://localhost:3306/dubbo-monitor
dubbo.monitor.mysql.username=root
dubbo.monitor.mysql.password=wlw123456
dubbo.monitor.mysql.pool.max=10
dubbo.monitor.mysql.pool.min=10
此处需要特别注意:因为使用mysql数据库存储因此在此之前必须先安装mysql软件可以安装在同一个机器上也可以安装在其他机器上但是要能连接上去
初始化数据库:
CREATE TABLE `application` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL DEFAULT '',
`type` varchar(50) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
UNIQUE KEY `应用名词索引` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3. 管理和UI展示
dubbokeeper/target/mysql-dubbokeeper-ui这个下面的war包dubbokeeper-ui-1.0.1.war扔到tomcat或jetty部署即可(这个才是真正的管理+监控 UI)
这里需要注意需要安装好tomcat并且在将war放到tomcat的webapp下面删除tomcat的默认文件。
重启tomcat,在webapp下发现多了个文件夹dubbokeeper-ui-1.0.1修改dubbokeeper-ui-1.0.1/WEB-INF/classes下的dubbo.properties
设置zookeeper注册中心 此处需要和上面设置的mysql-monitor一样
dubbo.application.name=common-monitor
dubbo.application.owner=bieber
dubbo.registry.address=zookeeper://192.168.15.203:2181
#use netty4
dubbo.reference.client=netty4
#peeper config 此处可以配置多个zookeeper注册中心可以透视zookeeper服务
peeper.zookeepers=101.89.137.26:2181,101.89.177.224:2181,180.153.53.160:2181,192.168.15.203:2181
peeper.zookeeper.session.timeout=60000
#logger 日志文件
monitor.log.home=/monitor-log
monitor.collect.interval=6000
重新配置以后,删除掉war包。重启tomcat服务
http://192.168.199.90:82/dubbokeeper-ui-1.0.1/index.htm#/statistics
关系
4. 服务端和客户端配置
-
monitor
monitor报错
打开monitor时报错如上图,没有启动dubbo-monitor-server导致的
cd /root/dubbokeeper/target/mysql-dubbokeeper-server/bin
chmod +x start-mysql.sh
./start-mysql.sh
启动成功
如上图就是启动成功了,再次过程中可能会遇到数据库连接报错,修改配置文件中数据库部分,如果找不到数据库名称,检查新建的数据库名和初始化表是否正确。此处需要注意:后台运行可以使用nohup ./start-mysql.sh
上述操作以后发现monitor下面并没有数据:
1. 数据有问题,里面没有生成数据。检查两个配置文件中设置zookeeper中心是否相同
2. 数据库是否初始化
3. Dubbo服务的提供者和消费者是否设置spring-dubbo.xml
<!-- 监控中心-->
<dubbo:monitor protocol="registry" />
4. 如果都设置了等待一会儿,可能需要你去调用一次服务触发下就可以看到
监控
查看dubbo服务,展示耗时、并发等,显示详细的调用情况
dubbo服务调用情况
详细调用
-
Zookeeper
展示各个注册中心的服务 -
Admin管理
应用管理
包含当前系统所有子应用信息列表,以及各个引用服务引用消费列表信息,同时可以对某个应用的服务进行上下线操作,权重调整等,同时可以查看应用部署实体信息列表。目的是实现服务的可管理
动态配置
这是利用dubbo基于注册中心来管理服务实现对服务的参数在服务运行状态进行调整,比如对服务的超时时间调整,对服务的mock以及可以添加自定义参数的调整等,目的是服务的可配置。
admin
网友评论