开发者社区 > 云原生 > 正文

请教关于nacos 服务注册的一个问题,该怎么解决?

请教个问题。nacos 服务注册。
第一次:启动时候注册了服务 com.alibaba.nacos.api.naming.NamingService#registerInstance(java.lang.String, java.lang.String, com.alibaba.nacos.api.naming.pojo.Instance), 设置了 metaData 数据 举例 key :1

中间在nacos 管理后台 修改了 实例的配置。

第二次:后面重启 继续调用了 com.alibaba.nacos.api.naming.NamingService#registerInstance(java.lang.String, java.lang.String, com.alibaba.nacos.api.naming.pojo.Instance) 设置了 metaData 数据 举例 key:2
为什么不生效 , 实例的 metaData 还是 key :1

展开
收起
嘟嘟嘟嘟嘟嘟 2023-10-07 07:41:19 107 0
1 条回答
写回答
取消 提交回答
    • 一种可能的原因是你的nacos服务注册时使用了持久化模式,即设置了ephemeral参数为false。这种模式下,nacos会将服务实例的信息保存在数据库中,而不是内存中。这样的好处是可以保证服务实例在重启后仍然存在,但是也会导致服务实例的更新不及时,需要等待数据库同步。
    • 一种可能的解决办法是你可以在注册服务实例时使用临时模式,即设置ephemeral参数为true。这种模式下,nacos会将服务实例的信息保存在内存中,而不是数据库中。这样的好处是可以保证服务实例的更新及时,但是也会导致服务实例在重启后消失,需要重新注册。
    • 另一种可能的原因是你的nacos服务注册时使用了分组功能,即设置了groupName参数为一个非默认值。这种功能可以让你将不同的服务实例分组管理,但是也会导致服务实例的查询和更新需要指定相同的分组名。
    • 另一种可能的解决办法是你可以在注册和更新服务实例时使用相同的分组名,或者使用默认的分组名DEFAULT_GROUP。这样可以保证服务实例的查询和更新能够匹配到正确的分组。
    2023-10-13 09:42:47
    赞同 1 展开评论 打赏
问答分类:
问答地址:

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
Nacos架构&原理 立即下载
workshop专场-微服务专场-开发者动手实践营-微服务-使用Nacos进行服务的动态发现和流量调度 立即下载
Nacos 启航,发布第一个版本, 云原生时代助力用户微服务平台建设 立即下载