Il giorno gio 20 ott 2022 alle ore 11:09 丛搏 <bog...@apache.org> ha scritto:
>
> Hi,
>
> I have another solution, we only guarantee the invoke batch receive
> returns the messages are the same topic message.

This is going to reduce performances of applications that consume from
a partitioned topic or using a pattern or multiple topics, the
application will receive smaller batches.
Also, in the current API you don't have this assumption.

I think that if we want to go this way we have to add a new
batchReceive API that guarantees that all the messages are from the
same message

batchReceiveSingleTopic()

Enrico


In this way, we don't
> need to add the new API for ack. use example is:
> ```
> // consumer the multi-partition messages
> while (true) {
>     Messages<String> messages = consumer.batchReceive();
>     Message<String> finalMessage = null;
>     for (Message<String> message : messages) {
>         process(message);
>         finalMessage = message;
>     }
>     if (finalMessage != null) {
>         consumer.acknowledgeCumulativeAsync(finalMessage);
>     }
> }
> ```
> implementation pr: https://github.com/congbobo184/pulsar/pull/5
>
> Thanks,
> bo
>
> Tarun Annapareddy <tarunannapareddy1...@gmail.com> 于2022年9月14日周三 17:46写道:
> >
> > Hi Enrico,
> >        I can understand the concern about the validation of the topic
> > string key in the map we are using. In this case is it good to have
> > Map<String, Message> topicToMessage? It will help us to validate that the
> > message truly belongs to the topic/partition.
> >
> > Thank you,
> > Tarun.
> >
> > On Wed, 14 Sept 2022 at 07:50, Yunze Xu <y...@streamnative.io.invalid>
> > wrote:
> >
> > > Hi Enrico,
> > >
> > > > There is no way to confirm that the MessageId really belongs to the
> > > > partition and you can pass whatever you want
> > >
> > > True. But still, the existing `acknowledgeCumulative` API is not
> > > convenient to use. The original purpose for this new overload is
> > > allowing users to maintain each partition's latest message ID to avoid
> > > frequent ACK commands, then they can flush all these message IDs once.
> > >
> > > Though the keys are actually not used, a natural way is to maintain a
> > > map, not a list or set. For a multi-topics consumer, we can also
> > > add a constraint that the key must exist in an internal consumer. For
> > > a single topic consumer, the key must be the topic name.
> > >
> > > Without the new API, users have to configure `acknowledgmentGroupTime`
> > > and call `acknowledgeCumulative` for each message received. However,
> > > the ACK grouping tracker is very simple that it can only configure the
> > > grouping timeout. I think users need a way to control precisely for when
> > > to send the ACK commands.
> > >
> > > In my design, `acknowledgeCumulative` that accepts a single message ID
> > > will go through the ACK grouping tracker, while
> > > `acknowledgeCumulative` that accepts a map should send ACK commands
> > > immediately because it represents users cache the pending message IDs
> > > by themselves.
> > >
> > > Thanks,
> > > Yunze
> > >
> > >
> > >
> > >
> > > > On Sep 13, 2022, at 18:36, Enrico Olivelli <eolive...@gmail.com> wrote:
> > > >
> > > > -1
> > > > I am not sure this is much useful in this form.
> > > > I had also commented on the PR: We pass a Map<String, MessageId> but
> > > > actually the keys of the map will not be used.
> > > >
> > > > I understand that the current API is not user-friendly, but I don't
> > > > think that adding a dummy parameter to the API will really
> > > > help.
> > > > There is no way to confirm that the MessageId really belongs to the
> > > > partition and you can pass whatever you want
> > > >
> > > > Enrico
> > > >
> > > >
> > > >
> > > >
> > > > Il giorno mar 13 set 2022 alle ore 12:24 Xiangying Meng
> > > > <xiangy...@apache.org> ha scritto:
> > > >>
> > > >> +1 (non-binding)
> > > >> Good work!
> > > >>
> > > >> Sincerely,
> > > >> Xiangying
> > > >>
> > > >> On Tue, Sep 13, 2022 at 6:15 PM Tarun Annapareddy <
> > > >> tarunannapareddy1...@gmail.com> wrote:
> > > >>
> > > >>> Hi devs,
> > > >>>    This is the official thread to vote for Java Client support to
> > > >>> Cumulative Acknowledge messages for multiple partitions or topics
> > > >>>
> > > >>> PIP Issue: https://github.com/apache/pulsar/issues/17574
> > > >>> Discussion thread:
> > > >>> https://lists.apache.org/thread/k090ftlqc149yr1cnprxb29vxg160131
> > > >>> PR: https://github.com/apache/pulsar/pull/17577
> > > >>>
> > > >>> Thank you,
> > > >>> Tarun.
> > > >>>
> > >
> > >

Reply via email to