Dubbo服务管理和监管

举报
SHQ5785 发表于 2023/11/29 08:46:57 2023/11/29
【摘要】 dubbo官方自带了dubbo-admin及dubbo-simple/dubbo-monitor-simple二个子项目用于服务治理及服务监控。 一、dubbo-admin的部署项目编译打包成功后,将dubbo-admin/target/dubbo-admin-2.8.xxx.war 复制到jetty、tomcat下的webapps就算完成部署了(当然,也可以部署到其它兼容的servlet容...

dubbo官方自带了dubbo-admindubbo-simple/dubbo-monitor-simple二个子项目用于服务治理服务监控

一、dubbo-admin的部署

项目编译打包成功后,将dubbo-admin/target/dubbo-admin-2.8.xxx.war 复制到jettytomcat下的webapps就算完成部署了(当然,也可以部署到其它兼容的servlet容器,比如jbossweblogic)。

然后浏览:http://localhost:8080/dubbo-admin/ 会提示登陆用户名、密码,这是在配置文件里写死的,配置文件的路径为:

dubbo-admin/src/main/webapp/WEB-INF/dubbo.properties
dubbo.registry.address=zookeeper://127.0.0.1:2181?backup=127.0.0.1:2182,127.0.0.1:2183
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest

即用户名、密码均为root,登录成功后,刷新下页面,如果提示404之类的,退回到 http://localhost:8080/ 浏览(这个跟部署的contextPath有关,如果contextPath设置为/dubbo-admin,刷新下就可以了,如果contextPath设置成/,则登录后要退回/ 浏览)。

dubbo的服务治理是其特色之一,管理界面如下:
这里写图片描述

二、dubbo-monitor-simple 部署

源项目打包后,目录dubbo-simple/dubbo-monitor-simple/target中会生成dubbo-monitor-simple-xxx-assembly.tar.gz,用tar -zxvf *.gz 解压,解压后有三个子目录binconflibconf里面是配置文件:

dubbo.container=log4j,spring,registry,jetty
dubbo.application.name=simple-monitor
dubbo.application.owner=
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.protocol.port=7070
dubbo.jetty.port=8180
dubbo.jetty.directory=/data/dubbo/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

参考上面改,然后bin下有一个start.sh脚本,启动即可,访问后浏览http://localhost:8180 (端口号要跟配置里一致)

服务调用次数的统计:
这里写图片描述
服务之间的依赖关系:这里写图片描述
注1:官网的监控是把所有监控数据(主要是统计数据和表图数据)保存到服务器磁盘上的,运行时间久了,硬盘可能会撑满,要注意及时清理(就是配置文件里面配置的3个目录下)。

注2:监控数据也并非实时统计的,所以第1次部署成功后马上去看统计数据,可能没有,随便跑一个service provider/service consumer的用例,然后等一会儿就可以了。

三、dubbo-monitor-x

oschina上的开源项目,(为了与dubbox里的dubbo-monitor子项目名称上分开,在后面加了-x),其中的开发者『马金凯』,也是dubbox的作者之一。

不过,这个版本好象有点bugcharts上图表展示时会报错,通过跟代码,发现是sql的问题,已经在个人fork的分支上修复,有兴趣的可以参考。

注:与官网的监控存储方案不同,dubbo-monitor-x是把数据保存在mysql里的,参考README.md很容易搞定部署。

此外,该版本还有一个mongodb的分支,见:dubbo-monitor-mongo (推荐使用)

四、dubbo keeper

这是托管在git上的开源项目,从github用户信息上的邮箱后缀看,可能是阿里云的人发起的,与前面的项目不同,这个项目把管理+监控集成在一起了,而且存储方案除了mysql,还支持mongodblucene,不过好像项目没做完,只覆盖了dubbo-admin官方功能的90%左右(比如:添加路由功能就没有),如果这个项目逐渐完善了,个人觉得最有前途。

不过,该项目部署略复杂:
如果决定用mysql存储,先执行根目录下的install-mysql.sh

然后在target目录下,dubbokeeper/target/mysql-dubbokeeper-server/mysql-server/conf 修改如下配置信息:

dubbo.application.name=mysql-monitor
dubbo.application.owner=bieber
dubbo.registry.address=zookeeper://localhost:2181
dubbo.protocol.name=dubbo
dubbo.protocol.port=20884
monitor.collect.interval=100
#usered netty4
dubbo.provider.transporter=netty4
#mysql
dubbo.monitor.mysql.url=jdbc:mysql://default:3306/dubbokeeper
dubbo.monitor.mysql.username=root
dubbo.monitor.mysql.password=123456
dubbo.monitor.mysql.pool.max=10
dubbo.monitor.mysql.pool.min=10

主要是zkmysql的连接信息,以及端口号,然后执行上一级目录../bin下的start-mysql.sh 启动监控数据的存储服务(即:mysql-dubbokeeper-server本身就是一个dubbo服务,用于保存监控数据)。

dubbokeeper/target/mysql-dubbokeeper-ui这个下面的war包扔到tomcatjetty部署即可(这个才是真正的管理+监控 UI),如果启动失败,检查dubbokeeper/dubbokeeper-ui/src/main/resources/dubbo.properties 配置是否正确,如果不对,改正确了,再重新打包部署。

这个项目可以很方便的看各项目的依赖关系图,以及每个服务的调用次数等信息,可惜没有关键的QPS数据。

问题:这几套方案统计出来的数据,对于同样的用例,都不一样,也是醉了,不知道哪家的更准,看个人喜好吧。

下面推荐几种搭配:

  • 官方的dubbo-admin + 韩都的dubbo-monitor-x
  • 全官方的dubbo-admin + dubbo-monitor-simple
  • dubbokeeper 一套;

如果同时起多个监控服务,dubbo-admin里会有警告,而且监控数据存多份也没必要,所以不管怎么搭配,不要将dubbo-monitor-simpledubbo-monitor-xdubbokeeper同时部署在一个ZK注册中心。

拓展阅读

Zookeeper 下载地址: 点我下载

Dubbo-admin 下载地址: 点我下载

Dubbo-monitor 下载地址: 点我下载

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。