Kafka多消费者应用程序

zdwk9cvp  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(333)

我有一个Kafka主题,有50个分区,发布消息的速率是每秒500。作为端口pf使用者设计,我们可以使用多个使用者和他们自己的线程,也可以使用并发侦听器使用单个使用者和多个工作者处理线程。
假设每条消息需要100毫秒来处理。如果我们使用单个使用者并使用并发消息侦听器容器,那么我们最终将在一个部署中拥有50个线程。
如果我们使用相同的组id部署多个应用程序,并为每个应用程序分配10个并发线程,那么我们将需要5个部署。如果某个应用程序重新启动,则重新平衡可能是一个问题
你能建议一个好的方法吗?如果分区太多的话,建议拆分主题

hjqgdpho

hjqgdpho1#

是的,您的理解是正确的,5个并发性为10的示例每个分区将有一个使用者线程。如果只部署2个示例,则分区将分布在20个线程上。
您可以通过使用最近的静态组成员资格特性来缓解重新平衡。 group.instance.id 最终用户提供的使用者示例的唯一标识符。只允许非空字符串。如果设置,则使用者将被视为静态成员,这意味着在任何时候,使用者组中只允许有一个具有此id的示例。这可以与较大的会话超时结合使用,以避免由暂时不可用(例如进程重新启动)引起的组重新平衡。如果不设置,消费者将以动态成员的身份加入群体,这是传统行为。

相关问题