Strom 0.9.2-incubating 斜街 Kafka 重复消费数据

一、问题描述

​ 今天在做 storm 斜街 kafka 作业的时候,storm 的 spout 作为 kafka 的消费者,接收到消息发送到 bolt 进行输出,发现 storm 一直提交的都是同样的偏移量,这就导致了重复消费数据。

二、解决方案

​ 在通过看 GitHub 上官方的示例后,发现是自己的 bolt 在输出数据之后没有发送 ack,这就导致了作为消费者的 spout 不会向 kafka 更新 offset,在加上 ack 后就 ok 了。

代码:

public void execute(Tuple input) {
    String log = input.getString(0);
    if(log.length() > 0) {
        System.out.println("【info, partition1: hive log】: " + log);
    }

    collector.ack(input);	//发送 ack 确认
}

发布了42 篇原创文章 · 获赞 3 · 访问量 2057

猜你喜欢

转载自blog.csdn.net/stable_zl/article/details/105015625