Initial use of Dubbo, in the research and development environment and test environment testing no problem, and then the service on-line, on-line, Dubbo Server started normally, the client failed to start, and prompted
caused by:java.lang.IllegalStateException:Failed to check the status of the service Com.xxx.xxx.service.LoginService. No provider available for the service com.xxxx.xxxx.service.loginservice:3.0 from the URL zookeeper:// 202.106.199.37:2181/com.alibaba.dubbo.registry.registryservice?anyhost=true&application=xxx& Application.version=3.0&check=false&default.timeout=5000&dubbo=2.5.3&interface= Com.xxx.xxx.service.loginservice&methods=alogin,bpassword,userlogin,modifypasswordlogin,validate,fversion, xlogout,userlogout,gettest,getcode,alogin,atoken,auser&pid=2200&revision=1.0&side=consumerxtamp= 1462534379328&version=3.0 to the consumer 202.106.199.37 use Dubbo version 2.5.3
When starting consumer services, check the Dubbo provided by the service interface, on the consumer server, access to zookeeper://202.106.199.37:2181/ Com.alibaba.dubbo.registr the service provided by this address.
When you troubleshoot this problem, you find:
1.202.106.199.37 is not a producer, the IP address set on the consumer server, an inexplicable run-out IP address
2. Zookeeper configuration is <dubbo:registry protocol= "zookeeper" address= "192.168.0.123:2181"/>, how can become zookeeper:// 202.106.199.37:2181/.
3. In the Dubboadmin Management console, found that producers, consumers have, is the producer side of the prompt no consumer.
4. The production environment has a VPN, the test environment also has a VPN, test environment no matter, in the production environment but problems, so the problem of troubleshooting VPN.
Through the search problem, found that many people have similar problems, that is, Dubbo in a VPN machine needs to bind the host public IP, but the public IP is mapped over, so the solution path can not get through.
The other is that Dubbo used a DNS address and changed the service name to DNS by modifying the DNS configuration "vim/etc/resolv.conf" on the Dubbo server. I didn't do that. Feel too troublesome.
Finally, I think it should be the IP binding thing. Add "dubbo.protocol.host=192.168.0.123" to the "dubbo/webapps/root/web-inf/dubbo.properties" file in the admin console, Then add "Dubbo" port= "20885" in the Dubbo configuration file "<dubbo:protocol name="/> "host=" in the Dubbo service side spring, "192.168.0.123", Add the configuration of "<dubbo:protocol host=" 192.168.0.123 "/>" on the Dubbo consumer side. Then restart the Dubbo Administrator console, stop the consumer, stop the service provider, start the service provider, and start the consumer side. Go to the admin console refresh to see if everything is OK!
Description: We are currently on the line of a machine, so the server and consumer are the same IP address, if you are a cluster of servers, this is for reference only.
192.168.0.123 This IP address is the IP address of the VPN to the intranet map, other IP addresses and native IP addresses have not been tried, so you need to test yourself.
Dubbo Service Host IP does not have a bound pit (Dubbo registered with a solution that does not have IP on the host)