风暴nimbus是如何从一个工人那里得到ack的?它用Zookeeper吗?

np8igboo  于 2021-06-21  发布在  Storm
关注(0)|答案(1)|浏览(560)

它是怎么工作的?他们用zookeeper吗?把ack保存在znode里?我正在尝试使用zookeeper构建一个分布式系统,我需要从集群中的各种机器获得确认,200k ack/sec。
有没有可能用zookeeper来做这个?

vddsk6oq

vddsk6oq1#

storm不使用zookeeper来确认元组,也不将确认发送给nimbus。它们被直接送到喷口。
从消息处理页面:
storm拓扑有一组特殊的“acker”任务,用于跟踪每个喷口元组的元组数。当acker看到dag已完成时,它会向创建了喷口元组的喷口任务发送一条消息以确认该消息。
您需要覆盖喷口中的ack方法:

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

相关问题