Similar to triggering the backlog threshold full processing method:

When the backlog hits the threshold, it is assumed that the user has set
the producer_exception policy, and the Error of
ProducerBlockedQuotaExceededError is returned to the client-side, so that
the user can perceive this behavior.

r...@apache.org <ranxiaolong...@gmail.com> 于2022年4月13日周三 10:59写道:

> We also encountered the same problem. When the current limit is triggered,
> fast failure is an ideal way to deal with it. In this way, the behavior of
> the current limit itself can be notified to the client-side in time, and
> the user can feel the behavior of the current limit, instead of letting the
> user Send or receive a timeout.
>
> But for pulsar's own model, this thing doesn't seem to be handled very
> well, because the current limit is based on the connection itself, as
> Haiting and Lari said, if multiple topics reuse the same connection, then
> this situation will get tricky.
>
> So can we introduce other commands in Proto here, because the broker knows
> that the client has triggered various current-limiting thresholds? If the
> current-limiting threshold is triggered, the broker will notify the
> client-side of the information.
>
> --
> Thanks
> Xiaolong Ran
>
> Lari Hotari <l...@hotari.net> 于2022年4月8日周五 00:21写道:
>
>> > IMO, the more serious problem about `disableAutoread` is
>> > Producer/Consumer isolation issue,
>> > since they shares the connection. For example, if topic-A is
>> rate-limited,
>> > topic-B in the same client is also affected.
>>
>> Exactly. The rate-limiting won't even work properly since other rate
>> limiters operating on the same connection will enable autoread and this
>> results in inconsistent behavior.
>>
>> -Lari
>>
>> On Thu, Apr 7, 2022 at 10:53 AM Haiting Jiang <jianghait...@apache.org>
>> wrote:
>>
>> > >  send receipt to producer, the producer maybe timeout already.
>> >
>> > It's always possible that client got timeout, but the message is
>> actually
>> > successfully written,
>> > causing by network issue.
>> >
>> > IMO, the more serious problem about `disableAutoread` is
>> Producer/Consumer
>> > isolation issue,
>> > since they shares the connection. For example, if topic-A is
>> rate-limited,
>> > topic-B in the same
>> > client is also affected.
>> >
>> > Thanks,
>> > Haiting
>> >
>> > On 2022/04/07 07:13:50 Jiuming Tao wrote:
>> > > Hi all:
>> > >       According to the issue (
>> > https://github.com/apache/pulsar/issues/15038),  when producer send a
>> > message to broker and broker rate-limited at that time, the request will
>> > blocked in buffer, after broker read the message and send receipt to
>> > producer, the producer maybe timeout already.
>> > >       So, in the case, do we need to provider a new flow-control
>> > strategy(fail-fast)? It can be configurable, when broker in rate-limit,
>> > broker not `disableAutoread` and reply a `FlowControlException` instead.
>> > >
>> > > Thanks,
>> > > Tao Jiuming
>> >
>>
>

Reply via email to