欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Nacos—— Raft 如何发布内容

程序员文章站 2022-07-12 23:27:27
...

在上一篇介绍如何选举后,发布内容就相对简单很多了。

发布内容的入口

Nacos—— Raft 如何发布内容

signalPublish 的很简单

如果自己不是leader就转发给leader

Nacos—— Raft 如何发布内容

如果自己是leader,就向所有节点发送onPublish请求,注意这里是所有的节点,包括自己。

Nacos—— Raft 如何发布内容

所以其实还是看onPublish的逻辑了

Nacos—— Raft 如何发布内容

onPublish可以当做是一次心跳了,更新选举检查时间,然后一个重点就是term增加100了。

当然还是就是更新内容了,先写文件,再更新内存缓存。

Nacos—— Raft 如何发布内容

可以看到写文件的时候,一个key就是一个文件,文件的内容就是value这个json

Nacos—— Raft 如何发布内容

内存的缓存其实就是一个ConcurrentHashMap

private static ConcurrentMap<String, Datum> datums = new ConcurrentHashMap<String, Datum>();

RaftCore.datums.put(datum.key, datum);

之前也说到这个term很重要,那么自然是要持久化到文件了。

Nacos—— Raft 如何发布内容