【源码分析】Nacos如何使用AP协议完成服务端之间的数据同步?

AP节点的同步使用的是异步任务+消息队列的方式来实现的。
【源码分析】Nacos如何使用AP协议完成服务端之间的数据同步?_第1张图片
【源码分析】Nacos如何使用AP协议完成服务端之间的数据同步?_第2张图片

取出任务之后将会放入到一个List集合中。
然后会发现任务的执行是由条件的。
首先是当前集群的节点数量等于1000,那么此时会直接开始同步,当然这个条件在小项目中不会成立,所以还有一个条件就是当前时间和上一次的同步的时间超过了2s之后,也会执行一次任务的同步。
【源码分析】Nacos如何使用AP协议完成服务端之间的数据同步?_第3张图片
【源码分析】Nacos如何使用AP协议完成服务端之间的数据同步?_第4张图片

这里在进行数据同步的时候,我们可以考虑到,这次的注册的节点可能是注册到Nacos服务端1,那么其他几个Nacos服务端想要同步实例数据到自己的内存,我们就可以使用很简单的HTTP的方式去同步数据。

【源码分析】Nacos如何使用AP协议完成服务端之间的数据同步?_第5张图片
【源码分析】Nacos如何使用AP协议完成服务端之间的数据同步?_第6张图片
【源码分析】Nacos如何使用AP协议完成服务端之间的数据同步?_第7张图片

可以发现最后其实就是发送HTTP请求然后发送服务实例同步的方法。
【源码分析】Nacos如何使用AP协议完成服务端之间的数据同步?_第8张图片

然后就又调回了数据同步的方法。
【源码分析】Nacos如何使用AP协议完成服务端之间的数据同步?_第9张图片

你可能感兴趣的:(java,springcloud,nacos,java,springcloud)