Reputation: 3768
How it's work? does they use zookeeper for that?saves the ACK inside a znode? I'm trying to build a distributed system using zookeeper, I need to get acknowledge from the various machines in the cluster, 200k ack/sec.
Is it possible to use zookeeper for doing that?
Upvotes: 2
Views: 207
Reputation: 7056
Storm doesn't use zookeeper for acking tuples and doesn't send the ack to nimbus. They are sent to the spout directly.
From the guaranteeing message processing page:
A Storm topology has a set of special "acker" tasks that track the DAG of tuples for every spout tuple. When an acker sees that a DAG is complete, it sends a message to the spout task that created the spout tuple to ack the message.
You'll need to override the ack method in your spout:
@Override
public void ack(Object id) {
int number = (Integer)id;
System.out.println(String.format("Spout ack -> %d", number));
}
Upvotes: 2