【发布时间】:2019-04-20 19:03:16
【问题描述】:
我们有一个业务流程/工作流,它在收到初始事件消息时启动,并在处理最后一条消息时关闭。我们每天执行多达 100,000 个流程。我的问题是到达特定进程的消息的顺序必须由接收到的相同顺序消息来处理。如果其中一条消息失败,则进程必须冻结,直到问题得到解决,尽管所有其他进程都必须继续。对于这种情况,我正在考虑使用 Kafka。我想到的第一个解决方案是通过消息键使用主题分区。消息的键是 ProcessId。这样我可以确定所有进程消息都会被分区,并且 kafka 会保证顺序。由于我是 Kafka 的新手,所以我设法弄清楚必须提前创建分区,这让一切变得困难。所以我的问题是:
1) 当我向不存在的 kafka 主题生成消息时,该主题是在运行时创建的。主题分区是否可以具有相同的行为? 2)主题上可以有超过 100,000 个活动分区,这是一个问题吗? 3)可以在读取该主题的所有消息后删除分区吗? 4) 也许你可以建议我的问题的其他方法?
【问题讨论】:
标签: apache-kafka kafka-producer-api