Dubbo整合常见错误

本地IP获取失败

错误详情

1
2021-05-16 17:10:42.915  INFO 26664 --- [           main] org.apache.dubbo.config.ServiceConfig    :  [DUBBO] No valid ip found from environment, try to find valid host from DNS., dubbo version: 2.7.8, current host: 192.168.125.116

错误原因

org.apache.dubbo.config.ServiceConfig#findConfigedHosts方法中hostToBind = provider.getHost();获取生产者IP失败,该问题只出现于Dubbo程序与Nacos服务端Ip不一致的情况下

解决方式

在配置文件中添加
dubbo.protocol.host=本机IP

本机注册IP失败

由于多网卡原因,可能会导致获取IP错误,请禁用无用网卡,或将正确联网网卡顺序调整为第一位。

消费者启动时找不到对应的生产者

错误详情

1
No provider available for the service top.kthirty.demo.alibaba.dubbo.provider.service.IEchoService:1.0.0 from the url registry://localhost:9090/org.apache.dubbo.registry

错误原因

消费者在生产者之前启动时会出现这个问题,由于消费者启动时默认检查服务有效性

解决方式

添加dubbo.consumer.check=false禁用检查,生产者启动后可以正常使用

订阅多Services警告

警告详情

1
Current application will subscribe all services(size:0) in registry

出现原因

由于应用未指定订阅的应用,dubbo会自动订阅所有应用

解决方式

添加dubbo.cloud.subscribed-services配置(该警告不会影响正常使用)

随机端口失败

错误详情

1
Failed to bind NettyServer on /192.168.125.116:20880, cause: Address already in use

错误原因

由于多网卡原因可能会导致随机IP失败,20880端口在程序测试时永远未被占用

解决方式

添加dubbo.protocol.port配置,不要使用-1,使用正确未被占用的端口