apache-kafka - kafka消费者从单个分区向消费者分发消息| 选择
问题描述
我在一个集群下运行了四个应用程序实例,这意味着我在一个消费者组下有四个消费者。将有一个具有 100 个分区的主题。现在我需要使用所有四个消费者从特定分区读取唯一消息。基本上我需要将消息从特定分区分发给这四个消费者。如果我使用订阅,那么我无法控制从特定分区读取它,如果我使用分配,那么我将在所有四个消费者中收到相同的消息。
我同意通过 Kafka 是不可能的,碰巧有任何替代解决方案可以实现相同的目标。
解决方案
正如您已经提到的,“将消息从特定分区分发给这四个消费者”是不可能的,因为一个 Kafka 分区最多只能被一个消费者组的一个消费者消费。
Kafka 文档中给出了参考:“这是通过将主题中的分区分配给消费者组中的消费者来实现的,以便每个分区仅由组中的一个消费者使用。”
作为替代方案,我建议执行以下操作:让您的 KafkaProducer 将感兴趣的数据生成到具有您喜欢的多个分区的单独主题中(以增加吞吐量)。然后有一个专用应用程序,其中消费者线程的数量与该主题的分区相匹配,并从那里处理数据。
推荐阅读
- javascript - 基于javascript中的另一个数组更改对象数组的值
- react-native - 运行“npx react-native init”时出现“cb.apply 不是函数”错误
- flutter - Flutter On Press 负 Y 偏移量定位在堆栈中的问题
- python - 检查组权限的测试
- sql-server - 链接服务器“”的 OLE DB 提供程序“SQLNCLI11”无法开始分布式事务
- c# - 使用 mcs 编译器在 linux 中编译 c# 时出现错误:名称空间“System.Windows”中不存在类型或名称空间名称“Forms”?
- python - 找到触发词时,Discord bot 删除所有消息
- python - Django 模型“图像”对象没有属性“_committed”
- javascript - 如何在表单顶部显示加载指示器?
- arrays - 如何初始化指向结构数组的指针