業務需要提供一個接口。需要用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···