从版本 2.5 开始,每个版本都扩展了 . 这允许在运行时通过在引导服务器的配置中添加 a 来更改引导服务器: 。 这将为所有新连接调用以获取服务器列表。 消费者和生产者通常寿命很长。 要关闭现有 Producer,请调用 . 要关闭现有 Consumer,请在 and/or 和任何其他侦听器容器 Bean 上调用(然后)。KafkaResourceFactorySupplier<String>setBootstrapServersSupplier(() -> …​)reset()DefaultKafkaProducerFactorystop()start()KafkaListenerEndpointRegistrystop()start()Spring中文文档

为方便起见,该框架还提供了一个支持两组引导服务器;其中一个随时处于活动状态。 配置 并将其添加到生产者和消费者工厂,并通过调用 来配置 。 当您想切换时,请致电或呼叫生产者工厂以建立新连接;对于使用者和所有侦听器容器。 当使用 s 和 bean.ABSwitchClusterABSwitchClusterKafkaAdminsetBootstrapServersSupplier()primary()secondary()reset()stop()start()@KafkaListenerstop()start()KafkaListenerEndpointRegistrySpring中文文档

有关更多信息,请参阅 Javadocs。Spring中文文档

工厂监听器

从版本 2.5 开始,可以将 and 配置为 在创建或关闭生产者或使用者时接收通知。DefaultKafkaProducerFactoryDefaultKafkaConsumerFactoryListenerSpring中文文档

Producer 工厂侦听器
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) {
    }

}

在每种情况下,都是通过将属性(从创建后获得的)附加到工厂属性来创建的,用 分隔。idclient-idmetrics()beanName.Spring中文文档

例如,这些侦听器可用于在创建新客户端时创建和绑定 Micrometer 实例(并在客户端关闭时关闭它)。KafkaClientMetricsSpring中文文档

该框架提供了完全做到这一点的侦听器;请参阅千分尺原生指标。Spring中文文档

默认客户端 ID 前缀

从版本 3.2 开始,对于使用属性定义应用程序名称的 Spring Boot 应用程序,现在使用此名称 作为以下客户端类型自动生成的客户端 ID 的默认前缀:spring.application.nameSpring中文文档

这样可以更轻松地在服务器端识别这些客户端,以便进行故障排除或应用配额。Spring中文文档

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

没有消费者组的消费者Spring中文文档

消费者空-1Spring中文文档

myapp-consumer-1Spring中文文档

使用消费者组“mygroup”的消费者Spring中文文档

消费者 mygroup-1Spring中文文档

消费者 mygroup-1Spring中文文档

制作人Spring中文文档

生产者-1Spring中文文档

myapp-producer-1Spring中文文档

管理Spring中文文档

adminclient-1Spring中文文档

我的应用程序管理员-1Spring中文文档

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

没有消费者组的消费者Spring中文文档

消费者空-1Spring中文文档

myapp-consumer-1Spring中文文档

使用消费者组“mygroup”的消费者Spring中文文档

消费者 mygroup-1Spring中文文档

消费者 mygroup-1Spring中文文档

制作人Spring中文文档

生产者-1Spring中文文档

myapp-producer-1Spring中文文档

管理Spring中文文档

adminclient-1Spring中文文档

我的应用程序管理员-1Spring中文文档