SofaRaft
大约 3 分钟
是java语音针对raft协议的实现
解决的问题:
集群状态下的共识问题
leader的选举问题
同一时刻,最多只有一个leader,leader来负责处理读写请求
cap理论中,raft满足的是cp,也就是一致性和容忍性,在leader选举过程中,整个集群是不可用状态
leader接收到请求后,先进行WAL(Write Ahead Log),并等待多数节点完成日志的同步后,才会执行状态机的apply操作
Status 状态,封装了任务的执行结果 Closure 回调接口,引用Status, Task
- 任务的数据
- 期望的leader id
- 回调接口 Closure ,在成功或失败的时候调用
StateMachine
- 业务逻辑关键方法 onApply ,输入批量的task,业务处理task
NodeOptions raft节点的配置信息,里面就引用了StateMachine实例,以及其他的一些配置 比如:快照间隔时间、快照存储路径、日志保存路径、元信息存储路径等
Node: 代表一个raft节点,可以apply task(提交task),可以创建快照 snapshot 可用RaftServiceFactory创建一个node 正常情况都应该至少创建3个node node之前通过bolt框架通信
RpcServer: 和node的关系是什么? node和rpcserver之间是如何关联的?
系统推荐
- Cordova+Umi项目搭建步骤
- KVM 虚拟机安装
- Git合并多个提交并push到远程仓库
- PostgreSQL定时备份
- MongoDB高可用
- 是时候使用MapStruct替代BeanUtils了
- Censys搜索引擎学习
- ShadowsockServerUpdatePort
- Git Merge 、Rebase
- 不重启 JVM,如何替换掉已经加载的类?
- JVM杂项
- 免费 API 每日提供摸鱼日报,自动返回无水印图片,适用于公众号和小程序
- 随机毒鸡汤:只有我不认真复习,才能说服自己,接受自己糟糕的成绩。