业务需要提供一个接口。需要用dubbo协议的接口,我提供接口后部署在了测试环境,然后提供接口信息给对方,然而对方始终调不通。

又测试环境的doubboadmin异常,即使服务注册成功也查不到注册服务的任何信息,我只好问运维要了注册中心机器的用户密码自己登上去看,命令如下:

1)cd /opt/zookeeper/bin

  cd命令转到zookeeper所在位置的bin目录

2).zkCli.sh -server ip:port

  进入blablabla

3)ls /dubbo

罗列出所有dubbo服务

4)ls /dubbo/com.blablabla.YourService/provider

打印出你的服务提供者信息,provider换成consumer则打印出你的服务消费者信息

通过上述查询查到了我的dubbo服务存在提供者列表中,但是对方始终调不通,一直提示No provider available for the service。

于是我自己本地写代码调用测试的服务,发现也报相同的错误,实在想不通。

于是我把协议dubbo接口的协议换成了json,写代码发现可以调得通。写到这里,敏感的童靴也许就发现问题所在了,没错,json协议和dubbo协议用的端口号不一样,有可能是访问不了dubbo的端口号。

于是乎,

telnet [IP][空格][端口号] 例如 telnet 192.168.1.133 8080

果然,端口不通。

然后和运维人员申请权限,至此,折磨我两天的问题终于解决了。

还有一个遗留问题,dubbo协议的接口如何测起来方便点?正在研究DubboClient和JMETER···