2025年nacos配置中心热更新原理(nacos实现配置文件热更新)

nacos配置中心热更新原理(nacos实现配置文件热更新)svg xmlns http www w3 org 2000 svg style display none svg

大家好,我是讯享网,很高兴认识大家。



 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> <p></p> 

讯享网

1.保证数据一致性:Nacos使用Raft算法来维护集群中各持久节点数据的一致性。使用Distro算法来保证临时节点的一致性(重点)在Raft算法中,只有Leader节点拥有数据处理和信息分发的权利。当服务启动时,如果是Follower节点接收到请求,则会自动将请求转发给Leader节点,Leader节点完成实际的注册登记工作后,会向其他Follower节点发起“同步注册日志”的指令,以确保所有节点的数据一致性,Distro算法是集群中的一台机器收到接收到写请求并处理后,它会异步地将数据变更复制到其他节点,这样可以减少对写操作的延迟影响 ,来保证最终一致性,因此Nacos的临时节点保证AP,持久节点保证CP。

2.支持服务发现:Nacos作为服务发现和配置管理平台,需要实时地注册与发现服务实例。服务提供者将信息注册到Nacos服务器,服务消费者通过查询Nacos来发现服务实例列表。为了保证服务列表的实时性和准确性,Nacos需要通过数据同步机制来确保所有节点都包含最新的服务实例信息 。

3.处理临时数据:Nacos注册中心存储节点信息支持临时数据与持久数据。持久数据集群间的同步使用的是CP模型,通过Raft协议保证数据的一致性。而临时数据使用的是AP模型,保证服务的可用性。临时数据集群间的同步虽然没有使用特定的协议来保证一致性,但Nacos通过内部机制确保临时数据的同步 。


讯享网

4.支持异地多活:在异地多活的场景下,Nacos采用AP模型来保证高可用性。这意味着在不同的地理位置,Nacos节点之间需要同步数据,以确保服务的连续性和数据的一致性。

5.故障恢复:当Nacos集群中的节点出现问题时,可能会导致状态信息的丢失或不准确,影响服务的注册和发现。通过优化故障检测和恢复机制,如增加心跳检测、优化数据同步等,可以提高集群的稳定性和数据的一致性 。

在这里插入图片描述
在Nacos中,Distro协议主要通过以下几个组件实现:
@CanDistro注解:这个注解用于标识需要根据Distro协议进行重定向的方法。例如,在服务注册接口上,如果使用了这个注解,那么请求可能会被重定向到集群中的其他节点进行处理。

DistroFilter:这是一个过滤器,它在请求到达Controller之前进行拦截。如果请求的方法上有@CanDistro注解,并且当前节点不是负责该服务的节点,那么DistroFilter会将请求转发到正确的节点。

DistroMapper:这个组件负责决定当前节点是否应该处理某个服务的请求。它通过一系列规则(如服务名的哈希值)来决定请求应该由哪个节点处理。

数据同步:Distro协议还包括数据同步机制,确保在服务信息发生变化时,这些变化能够被同步到集群中的其他节点。这包括初始数据的全量同步和后续的增量同步。

CanDistro

讯享网

DistroFilter

 

1.Distro 协议是 Nacos 对于临时实例数据开发的一致性协议。
2.Distro 协议是集 Gossip + Eureka 协议的优点并加以优化后出现的。
3.Gossip 协议有什么坑?由于随机选取发送的节点,不可避免地存在消息重复发送给同一节点的情况,增加了网络的传输的压力,给消息节点带来额外的处理负载。
4.Distro 协议的优化:每个节点负责一部分数据,然后将数据同步给其他节点,有效地降低了消息冗余的问题。
5.关于临时实例数据:临时数据其实是存储在内存缓存中的,并且在其他节点在启动时会进行全量数据同步,然后节点也会定期进行数据校验。
AP 中的 P 代表网络分区,所以 Distro 在分布式集群环境下才能真正发挥其作用。它保证了在多个 Nacos 节点组成的 Nacos 集群环境中,当其中某个 Nacos 宕机后,整个集群还是能正常工作。




1.平等机制:Nacos 的每个节点是平等的,都可以处理写的请求。
2.异步复制机制:Nacos 把变更的数据异步复制到其他节点。
3.健康检查机制:每个节点只存了部分数据,定期检查客户端状态保持数据一致性。
4.本地读机制: 每个节点独立处理读请求,及时从本地发出响应。
5.新节点同步机制:Nacos 启动时,从其他节点同步数据。
6.路由转发机制:客户端发送的写请求,如果属于自己则处理,否则路由转发给其他节点。





小讯
上一篇 2025-04-28 15:08
下一篇 2025-06-13 13:10

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/145785.html