对于最新的稳定版本,请使用 Spring for Apache Kafka 3.2.1! |
对于最新的稳定版本,请使用 Spring for Apache Kafka 3.2.1! |
从版本 2.5 开始,每个版本都扩展了 .
这允许在运行时通过在引导服务器的配置中添加 a 来更改引导服务器: 。
这将为所有新连接调用以获取服务器列表。
消费者和生产者通常寿命很长。
要关闭现有 Producer,请调用 .
要关闭现有 Consumer,请在 and/or 和任何其他侦听器容器 Bean 上调用(然后)。KafkaResourceFactory
Supplier<String>
setBootstrapServersSupplier(() -> …)
reset()
DefaultKafkaProducerFactory
stop()
start()
KafkaListenerEndpointRegistry
stop()
start()
为方便起见,该框架还提供了一个支持两组引导服务器;其中一个随时处于活动状态。
配置 并将其添加到生产者和消费者工厂,并通过调用 来配置 。
当您想切换时,请致电或呼叫生产者工厂以建立新连接;对于使用者和所有侦听器容器。
当使用 s 和 bean.ABSwitchCluster
ABSwitchCluster
KafkaAdmin
setBootstrapServersSupplier()
primary()
secondary()
reset()
stop()
start()
@KafkaListener
stop()
start()
KafkaListenerEndpointRegistry
有关更多信息,请参阅 Javadocs。
工厂监听器
从版本 2.5 开始,可以将 and 配置为 在创建或关闭生产者或使用者时接收通知。DefaultKafkaProducerFactory
DefaultKafkaConsumerFactory
Listener
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
.
例如,这些侦听器可用于在创建新客户端时创建和绑定 Micrometer 实例(并在客户端关闭时关闭它)。KafkaClientMetrics
该框架提供了完全做到这一点的侦听器;请参阅千分尺原生指标。