Spring integration SpringIntegrationJavaDSL-Kafka:如何使用Kafka支持将ProducerListener添加到ProducerConfiguration?

Spring integration SpringIntegrationJavaDSL-Kafka:如何使用Kafka支持将ProducerListener添加到ProducerConfiguration?,spring-integration,Spring Integration,我正在开发一个SpringIntegration应用程序,它有一个Kafka出站通道适配器,并使用SpringIntegrationJavaDSL配置流 spring集成核心:4.2.4.1版本 spring集成卡夫卡:1.3.0.0版本 spring集成java dsl:1.1.2.0版本 我已经配置了类似于以下代码段的消息处理程序规范 KafkaProducerMessageHandlerSpec messageHandlerSpec = Kafka

我正在开发一个SpringIntegration应用程序,它有一个Kafka出站通道适配器,并使用SpringIntegrationJavaDSL配置流

  • spring集成核心:4.2.4.1版本
  • spring集成卡夫卡:1.3.0.0版本
  • spring集成java dsl:1.1.2.0版本
我已经配置了类似于以下代码段的消息处理程序规范

            KafkaProducerMessageHandlerSpec messageHandlerSpec = Kafka
                .outboundChannelAdapter()
                .addProducer(new ProducerMetadata<String, byte[]>(topicName, String.class, byte[].class,
                        new StringSerializer(), new ByteArraySerializer()), "localhost:9092");
KafkaProducerMessageHandlerSpec消息HandlerSpec=Kafka
.outboundChannelAdapter()
.addProducer(新的ProducerMetadata(topicName,String.class,byte[].class,
新的StringSerializer(),新的ByteArraySerializer(),“localhost:9092”);
我想增加一个生产商。此功能已添加到此处的spring integration kafka中

您能为我提供使用JavaDSL添加ProducerListener的适当机制吗


谢谢。

这听起来像是对SI Kafka 1.3的SI Java DSL的一个很好的改进。现在我们有了与SI Kafka 1.2.x的兼容性

同时,我们将尝试找出解决方案(请随意提出适当的GH问题),这里有一个解决方案:

KafkaProducerMessageHandlerSpec messageHandlerSpec = Kafka
            .outboundChannelAdapter()
            .addProducer(new ProducerMetadata<String, byte[]>(topicName, String.class, byte[].class,
                    new StringSerializer(), new ByteArraySerializer()), "localhost:9092");

KafkaProducerContext kafkaProducerContext = (KafkaProducerContext) messageHandlerSpec.getComponentsToRegister().iterator().next();
ProducerConfiguration<?, ?> producerConfiguration = kafkaProducerContext.getTopicConfiguration(topicName);
producerConfiguration.setProducerListener(myProducerListener);
KafkaProducerMessageHandlerSpec消息HandlerSpec=Kafka
.outboundChannelAdapter()
.addProducer(新的ProducerMetadata(topicName,String.class,byte[].class,
新的StringSerializer(),新的ByteArraySerializer(),“localhost:9092”);
KafkaProducerContext KafkaProducerContext=(KafkaProducerContext)messageHandlerSpec.GetComponentStoreRegister().iterator().next();
ProducerConfiguration ProducerConfiguration=KafkapProducerContext.getTopicConfiguration(topicName);
producerConfiguration.setProducerListener(myProducerListener);

这听起来像是对SI Kafka 1.3的SI Java DSL的一个很好的改进。现在我们有了与SI Kafka 1.2.x的兼容性

同时,我们将尝试找出解决方案(请随意提出适当的GH问题),这里有一个解决方案:

KafkaProducerMessageHandlerSpec messageHandlerSpec = Kafka
            .outboundChannelAdapter()
            .addProducer(new ProducerMetadata<String, byte[]>(topicName, String.class, byte[].class,
                    new StringSerializer(), new ByteArraySerializer()), "localhost:9092");

KafkaProducerContext kafkaProducerContext = (KafkaProducerContext) messageHandlerSpec.getComponentsToRegister().iterator().next();
ProducerConfiguration<?, ?> producerConfiguration = kafkaProducerContext.getTopicConfiguration(topicName);
producerConfiguration.setProducerListener(myProducerListener);
KafkaProducerMessageHandlerSpec消息HandlerSpec=Kafka
.outboundChannelAdapter()
.addProducer(新的ProducerMetadata(topicName,String.class,byte[].class,
新的StringSerializer(),新的ByteArraySerializer(),“localhost:9092”);
KafkaProducerContext KafkaProducerContext=(KafkaProducerContext)messageHandlerSpec.GetComponentStoreRegister().iterator().next();
ProducerConfiguration ProducerConfiguration=KafkapProducerContext.getTopicConfiguration(topicName);
producerConfiguration.setProducerListener(myProducerListener);

感谢您的解决方案。问题:感谢您的解决方案。问题: