nacos源码分析——raft如何发布内容

黄云斌huangyunbinIP属地: 广东
字数 239
在上一篇介绍如何选举后//www.greatytc.com/p/5a2d965174ae,发布内容就相对简单很多了。

发布内容的入口


image.png

signalPublish 的很简单

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

image.png

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

image.png

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


image.png
onPublish可以当做是一次心跳了,更新选举检查时间,然后一个重点就是term增加100了。
当然还是就是更新内容了,先写文件,再更新内存缓存。
image.png

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


image.png
内存的缓存其实就是一个ConcurrentHashMap
private static ConcurrentMap<String, Datum> datums = new ConcurrentHashMap<String, Datum>();

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

之前也说到这个term很重要,那么自然是要持久化到文件了。
image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
2人点赞
黄云斌huangyunbin就职于唯品会基础架构部,主要专注于性能优化,RPC,配置中心,服务发现。<br><br>微信公...
总资产13共写了2.0W字获得92个赞共223个粉丝

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,038评论 2 89
  • 包含的重点内容:JAVA基础JVM 知识开源框架知识操作系统多线程TCP 与 HTTP架构设计与分布式算法数据库知...
    消失er阅读 4,377评论 1 10
  • 二 孟子說:天時不如地利,地利不如人和。 初讀時讓人多麼疑惑啊。 然而南京,你不就是這精妙文化的注腳嗎? 天地之間...
    启嘉春秋阅读 339评论 0 2
  • 不知从什么时候起,内心已变的喧嚣不已,每日的匆忙过活没有使内心得到平静,不再平静如水,虽不是暴躁易怒那么夸张,可也...
    奥创小子阅读 582评论 3 11
  • 本文参加#未完待续,就要表白#活动,本人承诺,文章内容为原创,且未在其它平台发表过。 浅春轻夏 岁岁流年 有你的...
    不会起名的字阅读 191评论 0 0