Hi,

If you don’t anchor at all, collector.ack will basically do nothing (because 
input.getMessageId().getAnchorsToIds()  is empty).

It will accumulate the metrics (acked count) though. If you don’t acking at 
all, you can set “topology.acker.executors” to zero.

Code is here:

Ack:  
https://github.com/apache/storm/blob/master/storm-client/src/jvm/org/apache/storm/executor/bolt/BoltOutputCollectorImpl.java#L121
 
<https://github.com/apache/storm/blob/master/storm-client/src/jvm/org/apache/storm/executor/bolt/BoltOutputCollectorImpl.java#L121>
Emit: 
https://github.com/apache/storm/blob/master/storm-client/src/jvm/org/apache/storm/executor/bolt/BoltOutputCollectorImpl.java#L82
 
<https://github.com/apache/storm/blob/master/storm-client/src/jvm/org/apache/storm/executor/bolt/BoltOutputCollectorImpl.java#L82>

> On Jan 27, 2020, at 4:45 PM, Nithin Uppalapati (BLOOMBERG/ 731 LEX) 
> <[email protected]> wrote:
> 
> Hi,
> 
> All of my bolts in the topology implement BaseRichBolt and following is the 
> signature of prepare method, and I do not pass the input tuple as an argument 
> in the collector.emit of any of the bolts execute implementation. So, 
> essentially am not anchoring the tuples. 
> 
> Since I am not anchoring the tuples and using BaseRichBolt, what happens with 
> collector.ack ? Documentation says BaseRichBolt does not implicitly anchor or 
> ack the tuples. 
> 
> What is the behaviour of collector.ack, also can you point me to the 
> implementation of collector.ack?
> 
> @Override
>     public final void prepare(@SuppressWarnings("rawtypes") Map stormConf,
>             TopologyContext context, OutputCollector collector) {

  • Bolts Acking Nithin Uppalapati (BLOOMBERG/ 731 LEX)
    • Re: Bolts Acking Ethan Li

Reply via email to