1 兼容dubbo配置xml的方式
进展并不顺利,因为当dubbo的配置放在bootstrap.yml
中是没有问题的,但是放在nacos
中读取,则会提示消费的异常,这里调试ReferenceConfig
发现总有一个<dubbo:registry />
的配置,因为他没有指定zookeeper的注册地址,所以dubbo默认采用9090,于是就找不着了。但为何在bootstrap.yml
中却没有这个异常呢?
跟踪到AbstractInterfaceConfig
中loadRegistries
方法,执行this.checkRegistry();
发现<dubbo:registry />
的配置有了zookeeper的应用
在调试前还没有zookeeper的地支,经过appendProperties
之后就有了,那么这里做了什么呢?
调试到ConfigUtils
中getProperty
发现从bootstrap.yml
中可以获取到配置文件
再回过头看从nacos
的方式,就没有任何属性可以读取,现在应该考虑nacos
加载配置文件模式的研究了
跟踪到DubboUtils
中可以看到dubbo的属性配置是从环境变量可以看到
应该跟加载顺序有关,但好像也没有影响
bootstrap.properties
-> bootstrap.yml
-> application.properties
-> application.yml
暂且先将dubbo的配置写到bootstrap.yml
中,以后再解决此问题吧。
当多个网卡的时候,dubbo注册会失败,
多网卡指定确定的ip
application:
name: eayc-gateway-server
cloud:
nacos:
config:
server-addr: ${nacos.server-addr}
file-extension: yml
namespace: ${nacos.namespace}
discovery:
ip: 192.168.0.106
server-addr: ${nacos.server-addr}
namespace: ${nacos.namespace}
但是如果用的是虚拟专用网络,则上面的方案不行,下面这个10.42.12.43
就不是我们所需要的网络。他是虚拟专用网自动分配的网段
Caused by: org.apache.dubbo.remoting.RemotingException: client(url: dubbo://10.42.12.43:30905/org.apache.dubbo.metadata.MetadataService?codec=dubbo&connections=1&corethreads=2&dubbo=2.0.2&group=acc-mbms-server&heartbeat=60000&port=30905&protocol=dubbo&release=3.0.12&retries=0&side=provider&threadpool=cached&threads=100&timeout=5000&version=1.0.0) failed to connect to server /10.42.12.43:30905 client-side timeout 3000ms (elapsed: 3009ms) from netty client 192.168.0.106 using dubbo version 3.0.12
那么这个网络是从哪里来的呢?