xiaobaoqiu Blog

Think More, Code Less

Telnet Dubbo

Dubbo 2.0.5版本以后支持telnet命令,可以用来debug各个dubbo接口。

Dubbo官网:http://dubbo.io/User+Guide-zh.htm

telnet涉及的命令包括:

1
2
3
4
5
6
7
8
9
10
11
12
ls
ps
cd
pwd
trace
count
invoke
status
log
help
clear
exit

1.telnet

连接dubbo的provider:

1
telnet 127.0.0.1 20880

2.ls

ls显示服务列表,ls -l显示服务详细信息列表:

1
2
3
dubbo>ls
Xxx.xx.xxx.service.ConsumerMessageHandler
...

ls XxxService显示服务的方法列表,ls -l XxxService显示服务的方法详细信息列表

1
ls -l Xxx.xx.xxx.service.ConsumerMessageHandler

3.ps

ps显示服务端口列表,ps -l显示服务地址列表(ip + 端口):

1
2
dubbo>ps -l
dubbo://10.100.11.222:30003

ps 20880显示端口上的连接信息,ps -l 20880显示端口上的连接详细信息:

1
2
3
dubbo>ps -l 20880
/127.0.0.1:51478 -> /127.0.0.1:20880
...

4.cd

改变缺省服务,当设置了缺省服务,凡是需要输入服务名作为参数的命令,都可以省略服务参数。

cd /可以取消缺省服务

1
2
3
dubbo>cd Xxx.xx.xxx.service.ConsumerMessageHandler 
Used the Xxx.xx.xxx.service.ConsumerMessageHandler as default.
You can cancel default service by command: cd /

5.pwd

显示当前缺省服务

1
2
3
4
5
6
7
8
dubbo>pwd
Xxx.xx.xxx.service.ConsumerMessageHandler

dubbo>cd /
Cancelled default service qunar.tc.qmq.service.ConsumerMessageHandler.

dubbo>pwd 
/

6.trace

trace用来跟踪调用情况,当响应的Service的方法被调有,就会有调用日志:

trace XxxService                跟踪1次服务任意方法的调用情况
trace XxxService 10             跟踪10次服务任意方法的调用情况
trace XxxService xxxMethod      跟踪1次服务方法的调用情况
trace XxxService xxxMethod 10   跟踪10次服务方法的调用情况

7.count

count XxxService                统计1次服务任意方法的调用情况。
count XxxService 10             统计10次服务任意方法的调用情况。
count XxxService xxxMethod      统计1次服务方法的调用情况。
count XxxService xxxMethod 10   统计10次服务方法的调用情况。
1
2
3
4
5
6
7
8
dubbo>count Xxx.xx.xxx.service.ConsumerMessageHandler
dubbo>
+-------------------+-------+--------+--------+---------+-----+
| method            | total | failed | active | average | max |
+-------------------+-------+--------+--------+---------+-----+
| queryMessageState | 0     | 0      | 0      | 0ms     | 0ms |
| handle            | 0     | 0      | 0      | 0ms     | 0ms |
+-------------------+-------+--------+--------+---------+-----+

8.invoke

调用服务的某个方法:  invoke XxxService.xxxMethod({"prop": "value"})
调用服务的方法(自动查找包含此方法的服务):  invoke xxxMethod({"prop": "value"})
1
invoke Xxx.xx.xxx.service..batchGetExpiredList({"batch":1})

9.status

status:显示汇总状态,该状态将汇总所有资源的状态,当全部OK时则显示OK,只要有一个ERROR则显示ERROR,只要有一个WARN则显示WARN

status -l:显示状态列表。

所有的资源包括:

load        cpu数据,包括当前load,cpu核数
server      ip+port的列表(ps -l的数据)
datasource  数据库连接参数
threadpool  线程池参数
memory      当前JVM的内存使用情况(max,used,free)
registry    注册中心参数
spring      spring的配置文件
summary     上面这些信息中出现的Error等信息的汇总

示例如下 +————+——–+———————————-+ | resource | status | message | +————+——–+———————————-+ | load | OK | load:0.61,cpu:4 | | spring | OK | classpath:applicationContext.xml | | summary | ERROR | registry | +————+——–+———————————-+

10.log

2.0.6以上版本支持

log  error:     修改dubbo logger的日志级别
log 100:        查看file logger的最后100字符的日志

11.help

help        显示telnet命帮助信息
help Xxx    显示xxx命令的详细帮助信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dubbo>help 
Please input "help [command]" show detail.
 log level                        - Change log level or show log 
 pwd                              - Print working default service.
 trace [service] [method] [times] - Trace the service.
 clear [lines]                    - Clear screen.
 exit                             - Exit the telnet.
 help [command]                   - Show help.
 info                             - show dubbo info
 ls [-l] [service]                - List services and methods.
 invoke [service.]method(args)    - Invoke the service method.
 ps [-l] [port]                   - Print server ports and connections.
 cd [service]                     - Change default service.
 status [-l]                      - Show status.
 count [service] [method] [times] - Count the service.

12.clear

clear           清除屏幕上的内容
clear 100       清除屏幕上的指定行数的内容

13.exit

exit    退出当前telnet命令行。