You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When we analyzed the Pulsar source code, we stumbled upon this issue #15560. Although the issue does not deal with sinks in particular, it refers to the combination of processingGuarantee and autoAck parameters. Indeed, autoAck parameter is deprecated as the way how/when the message is acknowledged depends on the processingGuarantee parameter.
Our motivation for autoAck: false and processingGuarantee: effectively_once was that the message gets only acknowledged if the sink succeeds processing (the called REST endpoint returns 2xx). However, it looks like the messages are not acknowledged at all.
Our conclusion is that autoAck: false does not work in combination with HTTP sink.
Could you please confirm that?
Could you also provide more details about valid configurations for the related sink in the official documentation?
Could you also guide us regarding the handling of failed http sink calls (basically, how do we retry only those messages which fail to be dispatched via http sink to the configured url)?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
For integration of our existing REST APIs with Apache Pulsar (version 3.2.2) we want to utilize HTTP sink.
First, we configured the sink using
processingGuarantee: atmost_once
andautoAck: true
:However, if the URL called by HTTP sink fails, the message should not be acknowledged, hence the message should be redelivered.
For that purpose, we changed the Sink configuration as follows:
We started to receive the same message multiple times. Also the topic's internal-stats command shows that
numberOfEntriesSinceFirstNotAckedMessage: 656
)messagesConsumedCounter: -202
). Question: is the negative value related to so called "negative acknowledgement?, seepulsar/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ConsumerImpl.java
Line 807 in 137df29
When we analyzed the Pulsar source code, we stumbled upon this issue #15560. Although the issue does not deal with sinks in particular, it refers to the combination of
processingGuarantee
andautoAck
parameters. Indeed,autoAck
parameter is deprecated as the way how/when the message is acknowledged depends on theprocessingGuarantee
parameter.Our motivation for
autoAck: false
andprocessingGuarantee: effectively_once
was that the message gets only acknowledged if the sink succeeds processing (the called REST endpoint returns 2xx). However, it looks like the messages are not acknowledged at all.When we look at the implementation of the HTTP sink (https://github.com/apache/pulsar/blob/master/pulsar-io/http/src/main/java/org/apache/pulsar/io/http/HttpSink.java#L92), we cannot see any manual acknowledgment. On the other hand, the Cassandra sink has manual acknowledgment in place, see https://github.com/apache/pulsar/blob/master/pulsar-io/cassandra/src/main/java/org/apache/pulsar/io/cassandra/CassandraAbstractSink.java#L78.
Our conclusion is that
autoAck: false
does not work in combination with HTTP sink.Beta Was this translation helpful? Give feedback.
All reactions