如何利用 Apache Kafka 同时处理来自多个客户的数据流,确保每个客户的 10 条记录被并行消费,其中一台 Tomcat 服务器作为生产者,两台 Tomcat 服务器作为消费者?目前,我正在使用 Redis 发布/订阅系统在两个订阅者之间分发每个客户的 10 条记录,但我的目标是将此功能迁移到 Kafka。尽管通过各种资源(包括 YouTube、ChatGPT 和 Phind 等论坛)进行了广泛的研究,但我尚未找到合适的解决方案。
chatGPT,我已经尝试过了
你需要了解的两个概念是
分区 - Kafka 保证单个分区内的排序。但分区可以彼此并行读取。如果您想并行读取 10 条记录,那么我建议选择 10 倍数的分区计数。为了面向未来,您可以选择 100 个分区。
消费者组 - 共享相同groupId的一组消费者。 Kafka 保证每条消息只会传递给消费者组中的单个消费者。在您的情况下,您希望将消费者组大小设置为 10。