Hi, pulsar community:

We introduced dispatch throttling as part of PIP-3 which helps brokers to
control fan-out and prevent broker's instability due to large message
dispatch.

There are two strategies for batch message sending:

1. Enable the conf `preciseDispatcherFlowControl`: Cache the avg number of
messages per entry and estimate how many entries need to be read when the
message is delivered (see #6719), which makes more precise message counting.
2. Enable the conf `dispatchThrottlingOnBatchMessageEnabled`:  Support
rate-limiting dispatching on the batch messages rather than individual
messages within batch messages(see #12294). This improves throughput while
keeping the BK load stable.

But if both features are turned on simultaneously, neither will work well
because they are mutually exclusive. I have two solutions to this problem:
1. Define priorities for the two configurations. If the configuration with
a higher priority is enabled, another configuration is disabled
automatically.
2. Merge two configurations into one
`dispatchThrottlingModeOnBatchMessage`, value list is `none,` `precise,`
`based on batch.`(prefer)

Thanks
Yubiao Feng

Reply via email to