You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It'd be great if this method was protected, and returned the org.apache.kafka.clients.admin.Admin type. Additionally, the code in KafkaAdmin would need to be updated to use the Admin interface, instead of the KafkaAdmin class.
It's currently possible to do something similar the default producer/consumer factories, as they have methods like this:
protectedConsumer<K, V> createKafkaConsumer(Map<String, Object> configProps) {
checkBootstrap(configProps);
Consumer<K, V> kafkaConsumer = createRawConsumer(configProps);
if (!this.listeners.isEmpty() && !(kafkaConsumerinstanceofExtendedKafkaConsumer)) {
LOGGER.warn("The 'ConsumerFactory.Listener' configuration is ignored " +
"because the consumer is not an instance of 'ExtendedKafkaConsumer'." +
"Consider extending 'ExtendedKafkaConsumer' or implement your own 'ConsumerFactory'.");
}
for (ConsumerPostProcessor<K, V> pp : this.postProcessors) {
kafkaConsumer = pp.apply(kafkaConsumer);
}
returnkafkaConsumer;
}
Current Behavior
KafkaAdmin cannot be extended/overridden to use another type of class implementing the org.apache.kafka.clients.admin.Admin interface.
Context
I'm using OKafka, which has implementations of the Kafka interfaces, e.g., the Admin interface, and I would like to use these implementations with Spring Kafka. Based on my understanding of the code, some modifications would need to be made as described - I'd also be interested in any workarounds, if they are available.
The text was updated successfully, but these errors were encountered:
anders-swanson
changed the title
Spring KafkaAdmin needs override method for providing the Kafka Admin
Allow @Override of KafkaAdmin createAdmin()
Sep 13, 2024
@anders-swanson I think this is a reasonable request. In these cases, we usually recommend providing the correct bootstrap server config to KafkaAdmin as long as you are still using the default AdminClient from the Kafka client. But since you are using a completely different Admin implementation, it makes sense to override that method. We will discuss this further and give an update here. Thanks!
Expected Behavior
The Spring KafkaAdmin class has a package-private method "createAdmin" that returns the
org.apache.kafka.clients.admin.AdminClient
type:It'd be great if this method was protected, and returned the
org.apache.kafka.clients.admin.Admin
type. Additionally, the code in KafkaAdmin would need to be updated to use theAdmin
interface, instead of theKafkaAdmin
class.It's currently possible to do something similar the default producer/consumer factories, as they have methods like this:
Current Behavior
KafkaAdmin cannot be extended/overridden to use another type of class implementing the
org.apache.kafka.clients.admin.Admin
interface.Context
I'm using OKafka, which has implementations of the Kafka interfaces, e.g., the Admin interface, and I would like to use these implementations with Spring Kafka. Based on my understanding of the code, some modifications would need to be made as described - I'd also be interested in any workarounds, if they are available.
The text was updated successfully, but these errors were encountered: