在学习CITA中的共识算法。我注意到在0.20.x版本之后,CITA官方文档中的共识一栏,没有再提到Raft算法,如下图,release源代码中也找不到Raft的实现(貌似是TODO状态)。
为何0.20.x版本之后不再支持Raft了呢?直到20.2.0也没有实现Raft。如果我想配置CITA使用Raft来进行共识,我该如何做?
CITA该如何支持Raft?
1赞
raft共识算法很早的时候就不支持了,因为支持多种共识算法会导致后续的处理逻辑非常复杂。
如果有替换共识算法需求的话,可以看看我们新的CITA-Cloud项目
,目前发布的v0.1.0用的是raft
共识算法。
好的,非常感谢
您好,我还想再请教您,如果想改变CITA使用的共识算法,应该怎么做呢
简单的说重新实现一个共识微服务就可以了。因为CITA是微服务架构,共识部分是单独一个进程,跟其他微服务之间是通过mq消息通信的(pub/sub方式)。
但是麻烦的地方是,目前共识微服务订阅和需要发送的消息比较多,相关的数据结构有些耦合。修改工作量可能会比较大。
新的CITA-Cloud主要是做了模块解耦,参见 [欢迎讨论] CITA-Cloud 底层链技术白皮书 让共识跟其他微服务的耦合尽量少。
好的,非常感谢您的解答