zeebe隔断
Zeebe隔断
在Zeebe,所有数据都被组织到分区。一个分区是工作流相关事件的持续流。在代理群集中,分区分布在节点之间,因此可以将其视为碎片。引导Zeebe代理时,可以配置所需的分区数量。
使用范例
每当您部署工作流时,就将其部署到第一个分区。然后将工作流分发到所有分区。在所有分区上,此工作流程将接收相同的密钥和版本,以便可以一致地对其进行标识。
当启动工作流程实例时,客户端库会将请求路由到将在其中发布工作流程实例的一个分区。工作流实例的所有后续处理将在该分区中进行。
可扩展性
使用分区扩展您的工作流程处理。分区动态地分布在Zeebe群集中,并且每个分区一次都有一个领先的代理。该领导者接受请求并对该分区执行事件处理。让我们假设您要在五台计算机上分配工作流处理负载。您可以通过引导五个分区来实现。
请注意,尽管每个分区都有一个领先的代理,但是并不能保证所有的代理都可以领导一个分区。代理可以领导多个分区,有时,集群中的代理有时只能充当分区的复制备份。在发生分区故障转移之前,该代理将不会对进程进行任何活动的工作。
分区数据布局
分区是一个持久的仅追加事件流。最初,分区是空的。当插入第一个条目时,它将取代第一个条目。当第二个条目进入并插入时,它将代替第二个条目,依此类推。每个条目在分区中都有一个唯一标识它的位置。
复写
为了容错,将分区中的数据从分区的负责人复制到其跟随者。跟随者是其他Zeebe Broker节点,它们维护分区的副本而不执行事件处理。
推荐建议
选择分区的数量取决于用例,工作量和集群设置。以下是一些经验法则:
- 为了进行测试和早期开发,请从单个分区开始。请注意,Zeebe的工作流程处理针对效率进行了高度优化,因此单个分区已经可以处理高事件负载。
- 使用单个Zeebe Broker,单个分区就足够了。但是,如果节点具有多个核心,并且将代理配置为使用它们,则更多分区可以增加总吞吐量(每个分区2个线程)。
- 根据数据做出决定。模拟预期的工作负载,测量并比较不同分区设置的性能。
相关教程
- 2021-01-09
- 2021-01-09
- 2021-01-09
- 2021-01-09
- 2021-01-09
- 2021-01-09
- 2020-12-22
- 2020-12-22
- 2020-12-22
- 2020-12-21