【问题标题】:Spring Boot Microservice Connecting to KafkaSpring Boot 微服务连接 Kafka
【发布时间】:2017-07-13 06:37:24
【问题描述】:

我的微服务中定义了一个 Kafka 消费者。我已经部署了我的应用程序的 5 个实例。我已将 ConcurrentKafkaListenerContainerFactory 中的并发参数设置为 2。这是否意味着每个应用程序实例有 2 个使用者实例,或者我要连接的整个主题有 2 个使用者实例?

【问题讨论】:

    标签: java spring apache-kafka spring-kafka


    【解决方案1】:

    这意味着您在每个应用实例中有 2 个消费者;您需要至少 10 个关于该主题的分区,以便为每个消费者分配一个分区。应用实例彼此不知道。

    【讨论】:

    • 谢谢加里!我通过将并发设置为 5 进行了测试。我有 2 个应用程序实例和 10 个分区。但我只看到 5 个消费者。我用 4 ,3 ,2 和 1 重复了测试。每次我只看到并发参数中发送的实例数。这不意味着它在主题级别得到应用吗?
    • 它应该像我描述的那样工作;假设您正在使用代理组管理,您应该会看到有关在每个实例启动时分配的分区的日志消息。如果您希望分区分布在各个实例之间,则无法自行分配。
    • 谢谢 Gary,这可能是一个再平衡问题吗?我现在假设当第一个应用程序启动时,所有 10 个分区都从第一个激活的应用程序分配给 5 个实例。我猜第二个应用程序没有监听任何分区,有没有办法使用任何 kafka 命令强制重新平衡?
    • 重新平衡会自动进行。
    • 谢谢加里。是否有任何参数可以控制再平衡?
    猜你喜欢
    • 1970-01-01
    • 2019-10-11
    • 2021-09-20
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2019-10-15
    • 2021-07-28
    • 1970-01-01
    相关资源
    最近更新 更多