zeebe隔断

Zeebe隔断

在Zeebe,所有数据都被组织到分区。一个分区是工作流相关事件的持续流。在代理群集中,分区分布在节点之间,因此可以将其视为碎片。引导Zeebe代理时,可以配置所需的分区数量。

使用范例

每当您部署工作流时,就将其部署到第一个分区。然后将工作流分发到所有分区。在所有分区上,此工作流程将接收相同的密钥和版本,以便可以一致地对其进行标识。

当启动工作流程实例时,客户端库会将请求路由到将在其中发布工作流程实例的一个分区。工作流实例的所有后续处理将在该分区中进行。

可扩展性

使用分区扩展您的工作流程处理。分区动态地分布在Zeebe群集中,并且每个分区一次都有一个领先的代理。该领导者接受请求并对该分区执行事件处理。让我们假设您要在五台计算机上分配工作流处理负载。您可以通过引导五个分区来实现。

请注意,尽管每个分区都有一个领先的代理,但是并不能保证所有的代理都可以领导一个分区。代理可以领导多个分区,有时,集群中的代理有时只能充当分区的复制备份。在发生分区故障转移之前,该代理将不会对进程进行任何活动的工作。

分区数据布局

分区是一个持久的仅追加事件流。最初,分区是空的。当插入第一个条目时,它将取代第一个条目。当第二个条目进入并插入时,它将代替第二个条目,依此类推。每个条目在分区中都有一个唯一标识它的位置。

分区

 

复写

为了容错,将分区中的数据从分区的负责人复制到其跟随者。跟随者是其他Zeebe Broker节点,它们维护分区的副本而不执行事件处理。

推荐建议

选择分区的数量取决于用例,工作量和集群设置。以下是一些经验法则:

  1. 为了进行测试和早期开发,请从单个分区开始。请注意,Zeebe的工作流程处理针对效率进行了高度优化,因此单个分区已经可以处理高事件负载。
  2. 使用单个Zeebe Broker,单个分区就足够了。但是,如果节点具有多个核心,并且将代理配置为使用它们,则更多分区可以增加总吞吐量(每个分区2个线程)。
  3. 根据数据做出决定。模拟预期的工作负载,测量并比较不同分区设置的性能。

 

相关教程