Java Apache Storm-KafkaSpout不使用来自Kafka主题的消息

Java Apache Storm-KafkaSpout不使用来自Kafka主题的消息,java,apache-kafka,kafka-consumer-api,apache-storm,Java,Apache Kafka,Kafka Consumer Api,Apache Storm,我正试图使用下面的代码将卡夫卡整合到Storm Topology中,但不幸的是卡夫卡主题并没有使用来自卡夫卡主题的消息。在Storm UI Core中,发射计数永远保持为0 String bootStrapServer = "10.20.10.238:9092"; String topic = "test.topic"; KafkaSpoutConfig.Builder spoutConfigBuilder = KafkaSpoutConfig.buil

我正试图使用下面的代码将卡夫卡整合到Storm Topology中,但不幸的是卡夫卡主题并没有使用来自卡夫卡主题的消息。在Storm UI Core中,发射计数永远保持为0

String bootStrapServer = "10.20.10.238:9092";
String topic = "test.topic";

KafkaSpoutConfig.Builder spoutConfigBuilder = KafkaSpoutConfig.builder(bootStrapServer,topic);
spoutConfigBuilder.setProp(ConsumerConfig.RECEIVE_BUFFER_CONFIG,100*1024*1024);
spoutConfigBuilder.setProp(ConsumerConfig.MAX_PARTITION_FETCH_BYTES_CONFIG,100*1024*1024);
spoutConfigBuilder.setProcessingGuarantee(KafkaSpoutConfig.ProcessingGuarantee.AT_LEAST_ONCE);
Boolean readFromStart = true;
if(readFromStart) {
spoutConfigBuilder.setFirstPollOffsetStrategy(FirstPollOffsetStrategy.EARLIEST);
} 
else {
spoutConfigBuilder.setFirstPollOffsetStrategy(FirstPollOffsetStrategy.LATEST);
}

KafkaSpout spout = new KafkaSpout(spoutConfigBuilder.build());
builder.setSpout("kafkaSpout", spout, 1);
// And a Bolt to see messages
builder.setBolt("fcBolt", new FcBolt(), 1).setNumTasks(1).shuffleGrouping("kafkaSpout");
但是,当我尝试从CLI查看生成的消息时,我可以使用以下命令查看主题上的所有消息:


bin/kafka-console-consumer.sh --topic test.topic --from-beginning --bootstrap-server 10.20.10.238:9092


Picked up _JAVA_OPTIONS: -Xmx128000m
test
test
test1
....
版本:

Storm : 2.2.0
Kafka : 2.13_2.6.0
在旧版本中,它工作得很好!一些我在新版本中错过的东西


谢谢你的帮助。提前谢谢 如果您试图使用喷口中的kafka事件进行进一步处理,请确保您实际订阅了一个主题,该主题上创建了事件,然后您无法通过控制台使用者查看事件输出,因为您是在Storm中使用它们,而不是生成它们

如果您试图通过Storm为测试主题生成kafka事件,然后试图通过控制台使用者使用它们,那么请确保您确实在Storm中生成事件


希望这能让您走上正确的道路,我建议您在这里回顾一下卡夫卡的基本概念:

在生成事件时,我尝试使用zookeeper IP而不是代理服务器IP来放置事件。在最新版本的Kafka(2.6.0)中,所有信息都存储在代理/引导服务器上,因此无需直接与zookeeper进行通信以获取此类生产者-订阅者事件。