dubbo-2.5.4版本标签使用不当,导致初始化过慢的问题

目前公司有的项目依旧在使用dubbo2.5.4版本,在dubbo初始化的时候非常慢。导致我们在本地测试的时候跑一次测试类要5分钟。于是想到了优化,初步的想法是耗时操作应该是在加载注册中心和建立TCP连接的时候。所以就直接将断点加在了ReferenceConfig#createProxy中的loadRegistries

此时发现了一个奇怪的问题就是有两个注册中心URL(两个RegistryConfig实例),一个是配置的注册中心地址,一个默认生成的本机0.0.0.0:9090地址,在连接默认地址的非常慢。

检查dubbo配置文件,发现使用了两个registry标签,其中一个就是用来配置不检查注册中心的。但是实际上这相当于配置连两个注册中心,但是一个没有配置地址,而真正的注册中心检查也没有生效(我们的注册中心使用的是ZK集群,从来没挂过),但是在2.5.4版本dubbo不会报错,而是解析多个标签再生成一个名为RegistryConfig2的实例。所以配置为一个标签就解决了。

其实这个问题主要的原因还是对dubbo的配置不熟悉,原来的开发人员没有仔细看文档,不过在2.7.0版本dubbo已经把这个点给优化掉了,2.7.0版本在加载注册中心urls的时候,会加一步checkRegistry,如果注册中心地址为空,会直接报错的。

转载于:https://juejin.im/post/5cf75ea2e51d45777540fd6f

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值