博客
关于我
Nacos—— Raft 如何发布内容
阅读量:73 次
发布时间:2019-02-26

本文共 448 字,大约阅读时间需要 1 分钟。

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

发布内容的入口

signalPublish 的很简单

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

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

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

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

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

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

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

private static ConcurrentMap
datums = new ConcurrentHashMap
();

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

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

 

 

转载地址:http://jsg.baihongyu.com/

你可能感兴趣的文章
mapping文件目录生成修改
查看>>
MapReduce程序依赖的jar包
查看>>
mariadb multi-source replication(mariadb多主复制)
查看>>
MaterialForm对tab页进行隐藏
查看>>
Member var and Static var.
查看>>
memcached高速缓存学习笔记001---memcached介绍和安装以及基本使用
查看>>
memcached高速缓存学习笔记003---利用JAVA程序操作memcached crud操作
查看>>
Memcached:Node.js 高性能缓存解决方案
查看>>
memcache、redis原理对比
查看>>
memset初始化高维数组为-1/0
查看>>
Metasploit CGI网关接口渗透测试实战
查看>>
Metasploit Web服务器渗透测试实战
查看>>
Moment.js常见用法总结
查看>>
MongoDB出现Error parsing command line: unrecognised option ‘--fork‘ 的解决方法
查看>>
MongoDB学习笔记(8)--索引及优化索引
查看>>
ms sql server 2008 sp2更新异常
查看>>
MS UC 2013-0-Prepare Tool
查看>>
msbuild发布web应用程序
查看>>
MSCRM调用外部JS文件
查看>>
MSEdgeDriver (Chromium) 不适用于版本 >= 79.0.313 (Canary)
查看>>