Zeebe可以作为一个brokers集群运作,形成一个点对点网络。 在这个网络中,所有brokers都有相同的责任,没有单点故障。
Gossip Membership Protocol
Zeebe实现了Gossip协议,以了解哪些brokers当前是群集的一部分。
使用一组众所周知的引导brokers程序来引导集群,其他brokers程序可以连接到该brokers程序。 要实现此目的,每个brokers必须至少有一个引导brokers作为其配置中的初始联系点:
[network.gossip]
initialContactPoints = [ "node1.mycluster.loc:26502" ]
当brokers首次连接到群集时,它会从初始接触点获取拓扑,然后开始与其他brokers进行通讯。 brokers在重新启动时保持本地群集拓扑。
Raft Consensus and Replication Protocol
为了确保容错,Zeebe使用Raft协议跨机器复制数据。
数据分为分区(分片)。 每个分区都有许多副本。 在副本集中,领导者由筏协议确定,该协议接收请求并执行所有处理。 所有其他brokers都是被动的追随者。 当领导者变得不可用时,跟随者会透明地选择新的领导者。
对于不同的分区,群集中的每个brokers可以同时是领导者和跟随者。 这样,客户端流量均匀分布在所有代理中。
Commit
在处理分区上的新记录之前,必须将其复制到仲裁(通常是大多数)关注者。 此过程称为commit。 即使在单个代理完全丢失数据的情况下,提交也可确保记录持久。 提交的确切语义由筏协议定义。
zeebe qq交流群群号:856546010