【问题标题】:Spring kafka consumer for 2 kafka cluster2 kafka集群的spring kafka消费者
【发布时间】:2023-03-20 11:22:01
【问题描述】:

我在站点 1(3 个代理) 有两个集群设置 cluster-1,在站点 2(3 个代理) 有两个集群设置。 使用 spring kafka(1.3.6) 消费者(一台机器)并通过@KafkaListener 注解监听消息。 我们如何为每个集群(c1 和 c2)实例化多个 KafkaListenerContainerFactory 并同时监听来自两个集群的数据。

我的监听器应该同时使用来自两个集群的消息。

【问题讨论】:

    标签: spring-kafka


    【解决方案1】:

    Kafka 会自动连接到这两个实例,您无需再做任何事情。

    只需将这两个地址添加到bootstrap.servers 配置中,即使其中一个代理关闭,客户端也可以连接(但必须充分复制分区)。

    【讨论】:

    • 两个集群在不同的站点具有相同的主题,并且 IP 地址最初不会被知道,站点将被动态添加到 7 个站点。但是一个客户端 m/c 使用来自所有集群的消息同一组主题和分区认为我们必须动态地为每个站点实例化 diff ConcurrentKafkaListenerContainerFactory。您能否详细说明我们如何实现它。
    • 那不正确;您不需要多个消费者或生产者工厂;卡夫卡会处理这一切。
    • 我们如何动态地将集群(代理 ips)传递给消费者配置?例如如果有消费者,那么它将从集群 1 ,2..7 中的分区 (p0) 读取消息。
    • Kafka 自动完成;您需要知道至少一个正在运行的代理的地址。
    • 对不起 - 我虽然你在谈论集群中的多个实例。一个监听器不能与多个集群通信——你需要一个单独的消费者工厂和监听器容器工厂(和监听器)。
    猜你喜欢
    • 1970-01-01
    • 2018-04-02
    • 1970-01-01
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-13
    • 2018-02-10
    相关资源
    最近更新 更多