【发布时间】:2021-06-12 02:04:39
【问题描述】:
我是卡夫卡的新手。我有一个关于如何划分主题的问题。
我有 Kafka 主题并计划在其中包含 2 个分区。我有两个操作 - 项目创建/更新和项目验证。
项目创建/更新操作很长,需要时间才能完成。 Project Validate 运行速度更快,预计能快速返回结果。
我计划有 2 个不同的键 - 一个用于创建/更新操作,一个用于验证操作,这样每个操作都会转到单独的分区并最终由消费者组中的一个消费者监听以获取性能。
我开始了解 kafka 压缩,其中记录被压缩以防它们具有相同的密钥。这导致我的初始方法出现问题,因为所有项目创建/更新事件的密钥都是相同的,即使它们用于不同的项目。
如果我更改密钥以包含项目标识符,则不能保证所有项目创建事件都在单个分区中,这间接意味着验证操作可能必须等待长时间运行的创建操作完成。
如何设计我的分区键?
【问题讨论】: