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