【问题标题】:Apache Storm - KafkaSpout not consuming messaes from Kafka TopicApache Storm - KafkaSpout 不使用来自 Kafka 主题的消息
【发布时间】:2021-03-20 03:19:47
【问题描述】:

我正在尝试使用以下代码将 Kafka 集成到 Storm Toplogy,但不幸的是 KafkaSpout 没有使用来自 Kafka-topic 的消息。在 Storm UI-Core 中,Emitted count 永远保持为 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

在旧版本中,它工作正常!我错过了在较新版本中阅读的内容。

任何帮助表示赞赏。提前致谢!

【问题讨论】:

    标签: java apache-kafka kafka-consumer-api apache-storm


    【解决方案1】:

    很难知道你有什么,所以考虑展示你的其余代码。 但从你所拥有的来看,你似乎并没有真正产生任何事件。

    如果您尝试在 spout 中使用 kafka 事件以进行进一步处理,请确保您实际上订阅了一个在其上创建了事件的主题,然后您无法通过控制台使用者看到事件输出,因为您在 Storm 中消耗它们,而不是生产它们。

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

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

    【讨论】:

    • 在产生事件时,我试图将事件与 zookeeper IP 一起放置,而不是通过代理服务器 IP。使用最新版本的 Kafka(2.6.0),所有信息都存储在 broker/bootstrap-server 中 - 因此不需要为此类生产者-订阅者事件直接与 zookeeper 通信。
    猜你喜欢
    • 2016-11-16
    • 2017-10-25
    • 2015-05-20
    • 2016-06-29
    • 2016-08-28
    • 2017-10-19
    • 1970-01-01
    • 1970-01-01
    • 2020-12-12
    相关资源
    最近更新 更多