它是怎么工作的?他们用zookeeper吗?把ack保存在znode里?我正在尝试使用zookeeper构建一个分布式系统,我需要从集群中的各种机器获得确认,200k ack/sec。有没有可能用zookeeper来做这个?
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)); }
1条答案
按热度按时间vddsk6oq1#
storm不使用zookeeper来确认元组,也不将确认发送给nimbus。它们被直接送到喷口。
从消息处理页面:
storm拓扑有一组特殊的“acker”任务,用于跟踪每个喷口元组的元组数。当acker看到dag已完成时,它会向创建了喷口元组的喷口任务发送一条消息以确认该消息。
您需要覆盖喷口中的ack方法: