У KafkaTemplate
нет таких обратных вызовов, потому что это пассивный компонент, который может выполнять эту работу, только если мы его вызываем.
Для симуляции сбоя соединения я бы предложил вам реализовать пользовательский ProducerFactory
, создающий KafkaProducer
с имитацией или переопределением Future<RecordMetadata> send(ProducerRecord<K, V> record, Callback callback);
. Там в этом ProducerFactory
вы можете реализовать соответствующие обратные вызовы lifecylce и реагировать на состояние в упомянутой реализации send()
.
У org.apache.kafka.clients.producer.MockProducer
может быть что-то, что вы можете использовать или одолжить. Например, см. Его close()
или fenceProducer()
.