张裕 发表于 2024-11-14 10:16:19

dledger原理源码分析系列(一)-架构,核心组件和rpc组件

简介

      dledger是openmessaging的一个组件, raft算法实现,用于分布式日志,本系列分析dledger如何实现raft概念,以及dledger在rocketmq的应用
本系列使用dledger v0.40
本文分析dledger的架构,核心组件;rpc组件
关键词

Raft
Openmessaging
参考资料

In Search of an Understandable Consensus Algorithm  raft论文简版
技能架构

https://i-blog.csdnimg.cn/blog_migrate/d273769e5d251d0b616c221e56a43019.png


[*]应用/client  client是dledger提供给应用访问节点的组件
[*]rpc服务
rpc服务内置rpc client/rpc server,对外吸收外部rpc访问,包罗client和节点间通讯;对内,表明rpc哀求,转发给Server;对外,发送rpc哀求到其他节点


[*]Server
主步伐,负责节点启动,其他组件的启动;写入日志哀求开端处理等


[*]Elector
推选类,负责集群主节点推选


[*]EntryPusher
日志写入器,内置分发器和处理器,分发器主节点用于复制日志到跟随者;处理器跟随者使用,写入日志


[*]存储
存储日志条木,有两个实现,基于内存和基于文件


[*]快照/状态机
新版本的dledger提供状态机,dledger成为通用的raft组件,不再是转为rocketmq使用
启动

本节分析节点启动,下图是典型的dledger启动代码
https://i-blog.csdnimg.cn/blog_migrate/4a2303f374a0b7381621321826b73449.png

[*]构建和初始Server,Server代表节点
[*]注册状态机,若需要的话
[*]注册自界说的处理器,扩展rpc服务,若有的话
[*]Metrics组件初始化
[*]启动server
     Server启动,负责启动核心组件
     6. 优雅关机
rpc

本节介绍dledger的rpc模块,dledger选主,日志写入和复制通过来来回回的rpc完成,本节介绍dledger业务层面的rpc计划
节点间通讯

https://i-blog.csdnimg.cn/blog_migrate/6228785c9632ce6fe44703f4996cd009.png
上图节点间通讯模型
RaftProtocol/RaftProtocolHanlder  raft服务接口/处理器接口,raft服务接口界说外部,包罗client和节点间访问接口;处理器界说raft处理服务接口
ClientProtocol/ ClientProtocolHanlder 日志服务接口/处理器接口,日志服务接口界说外部,包罗client和节点间访问接口;处理器界说日志处理服务接口
RpcService 内置rpc client/rpc server, 对内使用NettyRemotingServer吸收rpc哀求,表明rpc哀求,转发给Server;对外,使用NettyRemotingClient发送rpc哀求到其他节点
Server  handler的真正实现者
技能架构图很直观的展示rpc调用关系
客户端通讯

https://i-blog.csdnimg.cn/blog_migrate/edcf6088083f525f2057fbb757104e0c.png
Client组件是应用用于集成dledger,应用可使用client组件访问集群
MetadataUpdate 定时更新leaderId,让Client访问领导者节点
DLedgerClientProtocol 界说了访问集群的接口
扩展机制

Dledger提供rpc扩展机制,通过增长rpc处理器,DLedgerRpcService提供方法注册用户界说处理器
https://i-blog.csdnimg.cn/blog_migrate/824bd151fe82306a21afa59aeb77a3a9.png
 系列文章



[*]架构,核心组件和rpc组件 完成
[*]心跳 完成
[*]推选 完成
[*]日志 完成
[*]存储和快照/状态机
[*]集群成员变动  成员变动管理,节点的上线下线发现,dledger v0.4未实现,但计划中,未来版本实现
[*]jraft  “double check”  多重分析,jraft比较忠实实现了raft算法,在dledger基础上,再研究jraft对raft更深入的熟悉

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: dledger原理源码分析系列(一)-架构,核心组件和rpc组件