- I have searched the issues of this repository and believe that this is not a duplicate.
Environment
- Dubbo version: 3.1.9
- Java version: 1.8
Steps to reproduce this issue
- A和B两个项目client定义同样的registry内容,定义不同的id,A和B两个client中分别定义了几个consumer,使用不同的registry id
- C项目同时引用了A和B两个client,启动时就会报错找不到A或B其中一个registry
- 原因是AbstractConfigManager的165行判断value.equals(config)时,equals方法中不比较id。为什么要忽略id的对比?
Pls. provide [GitHub address] to reproduce this issue.
Expected Behavior
如果没有其他特殊逻辑,equals比较id这个重要属性,允许不同项目配置相同内容而不同id的registry
Actual Behavior
If there is an exception, please attach the exception trace:
Just put your stack trace here!
2条答案
按热度按时间7tofc5zh1#
因为 id 在一些场景下是会自动生成的,导致 equals 不通过,因此出现配置一致性检查错误的情况。(主要是 ApplicationConfig 这种)
7vux5j2d2#
对于一些 Config(比如 Registry、Reference、Service)可以考虑判断 id