此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring for Apache Kafka 3.3.9spring-doc.cadn.net.cn

连接到 Kafka

从 2.5 版开始,其中每一个都扩展了KafkaResourceFactory. 这允许在运行时通过添加Supplier<String>到他们的配置:setBootstrapServersSupplier(() -> …​). 将为所有新连接调用此命令以获取服务器列表。 消费者和生产者通常是长寿的。 要关闭现有生产者,请调用reset()DefaultKafkaProducerFactory. 要关闭现有使用者,请调用stop()(然后start()) 在KafkaListenerEndpointRegistry和/或stop()start()在任何其他侦听器容器 Bean 上。spring-doc.cadn.net.cn

为方便起见,该框架还提供了一个ABSwitchCluster支持两组引导服务器;其中一个随时处于活动状态。 配置ABSwitchCluster并将其添加到生产者和消费者工厂,然后KafkaAdmin,通过调用setBootstrapServersSupplier(). 当你想切换时,请致电primary()secondary()并调用reset()在生产工厂建立新的连接;对于消费者来说,stop()start()所有侦听器容器。 使用时@KafkaListeners,stop()start()KafkaListenerEndpointRegistry豆。spring-doc.cadn.net.cn

有关更多信息,请参阅 Javadocs。spring-doc.cadn.net.cn

工厂监听器

从 2.5 版开始,DefaultKafkaProducerFactoryDefaultKafkaConsumerFactory可以配置为Listener在创建或关闭生产者或使用者时接收通知。spring-doc.cadn.net.cn

生产者工厂监听器
interface Listener<K, V> {

    default void producerAdded(String id, Producer<K, V> producer) {
    }

    default void producerRemoved(String id, Producer<K, V> producer) {
    }

}
消费者工厂监听器
interface Listener<K, V> {

    default void consumerAdded(String id, Consumer<K, V> consumer) {
    }

    default void consumerRemoved(String id, Consumer<K, V> consumer) {
    }

}

在每种情况下,id是通过将client-id属性(从metrics()创建后)到工厂beanName属性,分隔为..spring-doc.cadn.net.cn

例如,这些侦听器可用于创建和绑定千分尺KafkaClientMetrics实例,当创建新客户端时(并在客户端关闭时关闭它)。spring-doc.cadn.net.cn

该框架提供的侦听器正是这样做的;请参阅 Micrometer Native Metricsspring-doc.cadn.net.cn

默认客户端 ID 前缀

从版本 3.2 开始,对于使用spring.application.name属性,现在使用该名称 作为以下客户端类型的自动生成客户端 ID 的默认前缀:spring-doc.cadn.net.cn

这样可以更轻松地在服务器端识别这些客户端,以进行故障排除或应用配额。spring-doc.cadn.net.cn

表 1.Spring Boot 应用程序生成的示例客户端 IDspring.application.name=myapp
客户端类型 没有应用程序名称 使用应用程序名称

没有消费者组的消费者spring-doc.cadn.net.cn

消费者空 1spring-doc.cadn.net.cn

我的应用消费者-1spring-doc.cadn.net.cn

消费者组“mygroup”spring-doc.cadn.net.cn

消费者-我的组-1spring-doc.cadn.net.cn

消费者-我的组-1spring-doc.cadn.net.cn

制作人spring-doc.cadn.net.cn

生产者-1spring-doc.cadn.net.cn

我的应用程序生产者-1spring-doc.cadn.net.cn

管理spring-doc.cadn.net.cn

管理客户端-1spring-doc.cadn.net.cn

我的应用程序管理员-1spring-doc.cadn.net.cn