首页 > 解决方案 > Kafka消费者消费数据非常慢,只消费前500条记录

问题描述

我正在尝试集成 MongoDB 和 Storm-Kafka,Kafka Producer 从 MongoDB 生成数据,但无法从消费者端获取所有记录。它仅消耗 100 万条记录中的 500-600 条记录。

日志文件中没有错误,拓扑仍然存在但未处理进一步的记录。

Kafka 版本:0.10.* Storm 版本:1.2.1

我需要在消费者中添加任何配置吗?

 conf.put(Config.TOPOLOGY_BACKPRESSURE_ENABLE, false);
 conf.put(Config.TOPOLOGY_MAX_SPOUT_PENDING, 2048);
 conf.put(Config.TOPOLOGY_EXECUTOR_RECEIVE_BUFFER_SIZE, 16384);
 conf.put(Config.TOPOLOGY_EXECUTOR_SEND_BUFFER_SIZE, 16384);

BrokerHosts hosts = new ZkHosts(zookeeperUrl);
        SpoutConfig spoutConfig = new SpoutConfig(hosts, topic, zkRoot, consumerGroupId);
        spoutConfig.scheme = new KeyValueSchemeAsMultiScheme(new StringKeyValueScheme());
        spoutConfig.fetchSizeBytes = 25000000;
        if (startFromBeginning) {
            spoutConfig.startOffsetTime = OffsetRequest.EarliestTime();
        } else {
            spoutConfig.startOffsetTime = OffsetRequest.LatestTime();
        }
        return new KafkaSpout(spoutConfig);
    }

我希望 Kafka spout 应该从生产者生成的 kafka 主题中读取所有记录。

标签: apache-kafkaapache-stormkafka-consumer-api

解决方案


推荐阅读