naming.registerInstance("chit-approvalflowcontrol-flow1", "11.11.11.11", 8888); naming.registerInstance("chit-approvalflowcontrol-flow1", "11.11.11.12", 8888, "DEFAULT"); Nacos中为什么我这样注册,第二个未覆盖第一个呢?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在Nacos中,通过registerInstance
方法注册服务实例时,每个实例都会有一个唯一的标识,这个标识由服务名、IP地址、端口号以及可选的分组信息共同组成。根据您提供的代码片段,我们来分析为什么第二个注册没有覆盖第一个:
"chit-approvalflowcontrol-flow1"
。"11.11.11.11"
和端口8888
,第二次是"11.11.11.12"
和相同的端口8888
。由于IP地址不同,它们代表了两个不同的服务提供者实例。DEFAULT_GROUP
;而第二次调用显式指定了分组为"DEFAULT"
,虽然字符串内容上看似重复,但在Nacos中这会被视为同一个分组。在这种情况下,因为两者的IP地址不同,即使其他参数相同(包括分组名),它们也会被视为服务的不同实例,并不会相互覆盖。Nacos允许同一服务名下有多个不同IP地址的服务实例同时注册并被发现,这是为了支持服务的高可用性和负载均衡。
总结来说,第二个实例没有覆盖第一个是因为它们的IP地址不同,且其他注册信息(服务名、端口、分组)不足以使Nacos认为它们是同一个实例,因此两个实例都被成功注册并保持独立存在。
阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。