【问题标题】:How storm nimbus getting the ACK from a worker? does it use zookeeper?雨云如何从工人那里获得 ACK?它使用动物园管理员吗?
【发布时间】:2015-02-14 23:38:40
【问题描述】:

它是如何工作的?他们是否为此使用zookeeper?将ACK保存在znode中? 我正在尝试使用 zookeeper 构建分布式系统,我需要从集群中的各种机器获得确认,200k ack/sec。

是否可以使用 zookeeper 来做到这一点?

【问题讨论】:

    标签: apache-zookeeper apache-storm


    【解决方案1】:

    Storm 不使用 zookeeper 来确认元组,也不将 ack 发送到 nimbus。它们被直接发送到 spout。

    来自guaranteeing message processing 页面:

    Storm 拓扑有一组特殊的“acker”任务来跟踪 DAG 每个喷口元组的元组。当一个acker看到一个DAG是 完成,它会向创建 spout 的 spout 任务发送消息 用于确认消息的元组。

    您需要在 spout 中覆盖 ack 方法:

    @Override
    public void ack(Object id) {
        int number = (Integer)id;
        System.out.println(String.format("Spout ack -> %d", number));
    }
    

    【讨论】:

    • “acker”任务如何从工人(不同的机器)那里获取信息?
    • @15412s 这些问题很快就会变得相当复杂。我认为您应该为每个问题提出一个新问题。 :)
    猜你喜欢
    • 2017-03-11
    • 1970-01-01
    • 1970-01-01
    • 2015-06-05
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    • 2015-09-27
    • 1970-01-01
    相关资源
    最近更新 更多