我有一个由多个使用者(同一组)使用的多分区主题。我的目标是最大化消费处理,即任何消费者都可以消费来自任何分区的消息。我知道这看起来是不可能的,因为只有一个消费者可以从分区中消费。是否可以使用rest代理来实现这一点?例如,轮询所有代理使用者示例。谢谢。
vuktfyat1#
最大化消耗处理的最佳方法是让一个使用者(同一组)从每个分区读取数据。作为改进措施,您还可以回顾:分区数量:您可以增加分区数量,以便能够添加更多的使用者并提高吞吐量如何在分区之间平衡消息,一个错误的键选择可能会导致所有消息都到达同一分区同时提醒一下,分区和使用者组只允许一个使用者,以避免并发问题。如果两个消费者提交不同的补偿,会发生什么?->你最终会阅读两次信息或跳过其中一些!
0x6upsns2#
默认情况下,kafka消费者配置为从尽可能多的分区消费。如果您在同一主题上同时有多个使用者,使用相同的使用者组id,kafka将自动将卷分配给所有这些使用者。这是经过设计的,因此您可以通过添加更多的消费者来快速扩展消费。您可以(可选)指示kafka使用者只使用特定分区的使用者,甚至包括下到一个分区,但必须显式地这样做。
2条答案
按热度按时间vuktfyat1#
最大化消耗处理的最佳方法是让一个使用者(同一组)从每个分区读取数据。
作为改进措施,您还可以回顾:
分区数量:您可以增加分区数量,以便能够添加更多的使用者并提高吞吐量
如何在分区之间平衡消息,一个错误的键选择可能会导致所有消息都到达同一分区
同时提醒一下,分区和使用者组只允许一个使用者,以避免并发问题。如果两个消费者提交不同的补偿,会发生什么?->你最终会阅读两次信息或跳过其中一些!
0x6upsns2#
默认情况下,kafka消费者配置为从尽可能多的分区消费。如果您在同一主题上同时有多个使用者,使用相同的使用者组id,kafka将自动将卷分配给所有这些使用者。这是经过设计的,因此您可以通过添加更多的消费者来快速扩展消费。
您可以(可选)指示kafka使用者只使用特定分区的使用者,甚至包括下到一个分区,但必须显式地这样做。