Spring integration 无法查看卡夫卡制作人发布的消息(Spring集成)

Spring integration 无法查看卡夫卡制作人发布的消息(Spring集成),spring-integration,apache-kafka,kafka-producer-api,Spring Integration,Apache Kafka,Kafka Producer Api,Im使用Java Rest api中的Spring集成将消息生成到Kafka中。。 当我说 kafkaMessageChannel.send(MessageBuilder.withPayload("hi kafka from rest api").build()); 这将返回true这意味着它的发布..但无法查看主题日志中的消息。。 我检查了/usr/local/var/lib/kafka-logs/test-0下的日志 即使我运行了消费者控制台,但我也无法看到从api发布的消息 kafka

Im使用Java Rest api中的Spring集成将消息生成到Kafka中。。

当我说

kafkaMessageChannel.send(MessageBuilder.withPayload("hi kafka from rest api").build());
这将返回true这意味着它的发布..但无法查看主题日志中的消息。。 我检查了/usr/local/var/lib/kafka-logs/test-0下的日志

即使我运行了消费者控制台,但我也无法看到从api发布的消息

kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
但是如果我从生产者控制台生成消息,我可以在主题日志和消费者控制台中看到消息

kafka-console-producer.sh --broker-list localhost:9092 --topic test
我在spring集成rest api中使用相同的brokerlist和主题名称

我的spring配置出站xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:int="http://www.springframework.org/schema/integration"
       xmlns:int-kafka="http://www.springframework.org/schema/integration/kafka"
       xmlns:task="http://www.springframework.org/schema/task"
       xsi:schemaLocation="http://www.springframework.org/schema/integration/kafka http://www.springframework.org/schema/integration/kafka/spring-integration-kafka.xsd
        http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd">

    <int:channel id="producerKafka">
        <int:queue/>
    </int:channel>

    <int-kafka:outbound-channel-adapter
            id="kafkaOutboundChannelAdapter"
            kafka-producer-context-ref="kafkaProducerContext"
            channel="producerKafka">
        <int:poller fixed-delay="1000" time-unit="MILLISECONDS" receive-timeout="0" task-executor="taskExecutor"/>
    </int-kafka:outbound-channel-adapter>

    <task:executor id="taskExecutor" pool-size="5" keep-alive="120" queue-capacity="500"/>

    <int-kafka:producer-context id="kafkaProducerContext">
    <int-kafka:producer-configurations>
        <int-kafka:producer-configuration broker-list="localhost:9092"
                                          topic="test"                                     
                                          sync="true"
                                          key-class-type="java.lang.String" 
                                          key-encoder="encoder"
                                          value-class-type="java.lang.String" 
                                          value-encoder="encoder"
                                          partitioner="partitioner"                                             
                                          compression-type="none"
                                          producer-listener="kafkalistner"/>
    </int-kafka:producer-configurations>
</int-kafka:producer-context>

    <bean id="encoder"
    class="org.springframework.integration.kafka.serializer.common.StringEncoder" />
<bean id="kafkalistner" class="kafka.producer.rest.model.ProducerListnerKafka" />
    <bean id="partitioner" class="org.springframework.integration.kafka.support.DefaultPartitioner"/>


</beans>

我试着调试它,但它甚至没有出现在OneError函数中。

你能再发布一点关于Spring集成配置的信息吗?用出站通道xml更新了问题。它类似于Try with
sync=“true”中的一个mentioend
并查看日志,看是否有关于此事的StackTrace。@ArtemBilan我做了此更改sync=“true”…我在/usr/local/var/lib/kafka logs/test-0下的主题日志中没有看到消息…它有从生产者控制台发布的消息,但没有来自api的消息…日志中没有堆栈跟踪…它只有消息我下载了kafka工具kafkatool.com/download.html以查看消息,即使在那里它也只显示发布的消息来自卡夫卡制作人控制台…而不是来自api的消息
 public class ProducerListnerKafka extends LoggingProducerListener{

        @Override
        public void setIncludeContents(boolean includeContents) {
            super.setIncludeContents(true);
        }

        @Override
        public void onError(String topic, Integer partition, Object key, Object payload, Exception exception) {
            super.onError(topic, partition, key, payload, exception);
        }

        @Override
        public void onSuccess(String topic, Integer partition, Object key, Object value, RecordMetadata recordMetadata) {
        String kafkatopic=recordMetadata.topic();

        }


    }