今天排查线上问题需调用其他服务,公司项目本地没办法访问预发环境,最终在预发环境服务器通过命令调用其他服务方法。
未来有时间可以基于这些命令封装成一个dubbo服务的管理工具。
一.使用telnet命令连接dubbo服务
telnet ip 端口
二.查看已注册服务
连接好服务后使用ls命令可以查看已注册服务。
ls 注册服务
可查看服务中的方法
ls 显示服务列表。
ls -l 显示服务详细信息列表。
ls XxxService 显示服务的方法列表。
ls -l XxxService显示服务的方法详细信息列表。
三.使用invoke命令调用服务
调用接口时,以JSON格式传入参数(这点很方便 ????),然后打印返回值和所用时间。
dubbo>invoke com.test.DemoService.queryDemoPageList({“id”:“100”}, 1, 2)
{“totalCount”:1,“data”:[{date":“2011-03-23 14:10:32”,“name”:“张三”,“keyword”:null}]}
invoke XxxService.xxxMethod({“prop”: “value”})
调用服务的方法。
invoke xxxMethod({“prop”: “value”})
调用服务的方法(自动查找包含此方法的服务)。
四.查看服务状态
查看服务调用次数,不过比较奇怪的是,我刚才已经调用过一次queryDemoPageList了,而这里显示的为0(貌似不太准,有待进一步了解)
dubbo>count com.test.DemoService
dubbo>
±------------------------±------±-------±-------±--------±----+
| method | total | failed | active | average | max |
±------------------------±------±-------±-------±--------±----+
| queryDemoPageList | 0 | 0 | 0 | 0ms | 0ms |
| insertDemolist | 0 | 0 | 0 | 0ms | 0ms |
| uploadDemoList | 0 | 0 | 0 | 0ms | 0ms |
| deleteDemolist | 0 | 0 | 0 | 0ms | 0ms |
±------------------------±------±-------±-------±--------±----+
count
count XxxService
统计1次服务任意方法的调用情况。
count XxxService 10
统计10次服务任意方法的调用情况。
count XxxService xxxMethod
统计1次服务方法的调用情况。
count XxxService xxxMethod 10
统计10次服务方法的调用情况。
status
显示汇总状态,该状态将汇总所有资源的状态,当全部OK时则显示OK,只要有一个ERROR则显示ERROR,只要有一个WARN则显示WARN。
status -l
显示状态列表。