别来BUG求求了 2023-08-28 15:07 采纳率: 91.7%
浏览 5
已结题

Nacos服务注册后保存在哪里?

我有两个nacos集群,第一个集群中有三个nacos实例,第二个集群中有一个。这两个集群都在我的电脑上部署,使用同一个数据库
我将服务提供者注册到第一个集群中,为什么在第二个集群中查看不到。
当使用了nacos-sync将第一个集群中的这个服务提供者同步到第二个集群以后,才可以在第二个集群中查看到注册的服务
但是数据库的内容貌似没有任何变化,是因为nacos将实例信息存储在了内存中吗?底层的原理是什么呢?

img

  • 写回答

1条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-08-28 15:32
    关注

    引用 皆我百晓生 小程序回复内容作答:
    Nacos服务注册的信息默认是存储在内存中的,而不是直接存储在数据库中。Nacos使用了一种基于RAFT协议的分布式一致性算法来保证数据的一致性和可靠性。当你将服务提供者注册到第一个集群中时,它会将注册信息保存在内存中的实例列表中。当你使用nacos-sync将第一个集群中的服务提供者同步到第二个集群时,它会将内存中的实例列表复制到第二个集群的内存中,从而使第二个集群中也能查看到注册的服务。

    需要注意的是,Nacos的内存存储是有限的,如果内存不足或者重启了Nacos实例,之前注册的服务信息可能会丢失。为了保证数据的持久性,你可以配置Nacos使用数据库作为持久化存储,这样即使重启了Nacos实例,之前注册的服务信息也能够恢复。你可以在Nacos的配置文件中进行相应的配置。

    总结一下,Nacos将服务注册信息存储在内存中,使用RAFT协议保证数据的一致性和可靠性。你可以选择将数据持久化到数据库中以保证数据的持久性。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月6日
  • 已采纳回答 8月29日
  • 创建了问题 8月28日

悬赏问题

  • ¥20 校园二手交易小程序搭建
  • ¥15 请问在ubuntu用conda创建环境报错怎么能解决
  • ¥15 STM32CubeMX/proteus按键控制指示灯颜色切换
  • ¥20 python,计算区位熵和扩张指数
  • ¥15 Python环境配置
  • ¥15 大四学生的困惑,有偿提问!
  • ¥15 解决页面无法编入索引:被“noindex”标签排除的问题?
  • ¥15 arduino测量电阻
  • ¥15 快手uid转快手号谁能解决 需要开发
  • ¥15 iis部署Django时css不生效,来个真人,ai不好使