15412s
15412s

Reputation: 3768

How storm nimbus getting the ACK from a worker? does it use zookeeper?

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

Answers (1)

Kit Menke
Kit Menke

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

Related Questions