dubbo遇到的坑

1、ip获取问题

  1. 在网上查,dubbo怎么去获取本机ip

  2. 翻看dubbo源码,在NetUtils中的getLocalAddress0这个方法

  3. dubbo获取本机所有网卡中的ip地址,然后拿到第一个不是127.0.0.1的那个ip

  4. 设置服务器上的hosts,vim /etc/hosts

192.168.72.235  localhost hostname

# 192.168.72.235 服务器ip
# localhost
# hostname 是主机名,在/etc/sysconfig/network进行配置

公司采用dubbo框架作为远程服务调用实现方案,为方便测试,写了个工程,直接调dubbo接口进行测试。遇到了一系列奇怪的问题,故记录于此。

Q:No provider available for the service com.netease.wyxd.xiezhi.client.open.provider.DetectProvider from registry 10.165.124.69:2181 on the consumer 192.168.233.1 using the dubbo version 2.8.4. Please check if the providers have been started and registered.

A:提示我这个ip地址无法调用到服务提供者,先看下dubbo admin上是否存在,确认无问题。哦有个地方,就是服务注册在zk上 默认采用的是机房网络地址(这里机器有私网地址、机房地址、公网地址,机房网络地址主要是为了服务器之间的通信,本地服务调服务器一般是用私网或者公网),由于服务在admin上暴露出来的地址是机房网络地址,所以需要在环境变量上加个配置 -Ddubbo.protocol.host=10.165.124.89  或者在dubbo.properties里面加

我这里的问题比较奇怪 这个消费者的ip并不是我的本机ip 所以我清了一把网络 好了 我的公网地址应该是10.242.111.206 这个才是我正常的ip

Q: java.lang.IllegalStateException: Unsupported protocol hessian in notified url

A: 这个查了好久 网上没几个 后来我自己试了 是因为hession.jar包没有加 ==  ORZ...

扫描二维码关注公众号,回复: 93715 查看本文章

猜你喜欢

转载自my.oschina.net/u/222931/blog/1803372