apache-kafka - 如何强制 Alpakka-kafka 从主题分区中读取循环?
问题描述
我想就以下问题征求一些意见 - 我Consumer.committableSource
在我的应用程序中使用 a 。在测试期间,我发现应用程序不会在 Kafka 主题的分区之间进行循环,而是会耗尽给定的分区,直到它在切换到下一个分区之前消耗最新的条目。这对我的应用程序来说并不理想,因为它关心事件在 Kafka 上的时间顺序。这种详尽的读取分区的方式就像在时间上来回穿梭。
关于如何调整消费者以支持循环使用分区消费的任何想法?谢谢!
解决方案
您可以通过 2 种方式使用此场景,第一种方式更可取,因为它以最小的延迟实现了并行化和高吞吐量。
为同一个消费者创建多个实例。它将作为消费者组工作,所有实例将并行共享分区负载。例如,如果您有 4 个分区并且使用 2 个实例,这意味着理想情况下 1 个实例将消耗 2 个分区。现在,如果您将实例增加到 4,那么在这种情况下,理想情况下的每个实例都将使用 1 个分区。在这种情况下,分区再平衡将由消费者的组管理来管理。
您还可以使用以下 API 将分区列表分配给消费者
公共无效分配(java.util.Collection 分区)
这将手动分配给消费者的分区列表,因此消费者将只使用分配的分区。这不会使用消费者重新平衡。
推荐阅读
- java - Java Singleton 不可访问,尽管它是公共静态的
- go - 服务帐户流程 - 2 Legged Oauth Golang
- cypress - 无法获取位于柏树 iframe 下的元素
- c - “collection *”类型的值不能分配给“recPtr”类型的实体
- flutter - grpc-web 安全性如何在生产中工作?
- vue.js - Vue:如何显示多个全局路由器视图
- angularjs - 修复 AngularJS 中的“跨站请求伪造”漏洞
- python - 如何确保反映所有 Excel 文件
- javascript - POST 请求正在使用 POSTMAN,但是当我尝试使用 Axios 从浏览器(UI)调用相同的链接时,它显示 404 错误 | 节点.js
- python - 如何获得CNN模型的混淆矩阵