Dubbo 中telnet命令的使用-Dubbo Invoke
假设我们配置的 dubbo.protocol.port=19951
-
telnet连接服务
命令:
telnet ip port
eg:telnet localhost 19951
-
查看服务列表 命令:
ls
-
查看服务中的接口方法 命令:
ls xxx.xxxService
ls
显示服务列表。
ls -l
显示服务详细信息列表。
ls XxxService
显示服务的方法列表。
ls -l XxxService
显示服务的方法详细信息列表。
-
调用服务接口 invoke
如果注入的是json那就直接传入json串就ok了,如果是基础数据类型,也可以分别对应参数直接传
invoke XxxService.xxxMethod({“prop”: “value”}, 1, “1”)
如果注入的参数是对象(com.lijun.User。具体的方法名: saveUser(User user)public class User implements Serializable { private String name; private Integer age; private String remark; // getter & setter }
我们也是按照json的格式传,只不过在每个对象后都需要指定具体的这个对象具体所属的类型(key 为 class)
invoke XxxService.saveUser({“name”:“张三”,“age”:18,“class”:“com.lijun.User”})
dubbo官网invoke文档:
invoke
- invoke XxxService.xxxMethod(1234, “abcd”, {“prop” : “value”}): 调用服务的方法
- invoke com.xxx.XxxService.XxxService.xxxMethod(1234, “abcd”, {“prop” : “value”}): 调用全路径服务的方法
- invoke xxxMethod(1234, “abcd”, {“prop” : “value”}): 调用服务的方法(自动查找包含此方法的服务)
- invoke xxxMethod({“name”:“zhangsan”,“age”:12,“class”:“org.apache.dubbo.qos.legacy.service.Person”}) :当有参数重载,或者类型转换失败的时候,可以通过增加class属性指定需要转换类
- 当参数为Map<Integer,T>,key的类型为Integer时,建议指定类型。例如invoke com.xxx.xxxApiService({“3”:0.123, “class”:“java.util.HashMap”})