Is your enhancement request related to a problem? Please describe.
I have nine brokers,when I kill one, the traffic of the remaining eight brokers will drop within 30 seconds, reach a peak after 30 seconds, and then return to normal. I found that the sending thread is blocked:
private boolean canEnqueueRequest(SendCallback callback, long sequenceId, int payloadSize) {
try {
if (conf.isBlockIfQueueFull()) {
if (semaphore.isPresent()) {
semaphore.get().acquire();
}
..
In other words, if the Producer queue corresponding to some partitions is full, the sending thread will be blocked, affecting the sending of other partitions
Describe the solution you'd like
Isolate partitions to avoid mutual influence when sending exceptions
Describe alternatives you've considered
PartitionedProducerImpl can automatically exclude Producers whose queues are full
Original Issue: apache/pulsar#13523
Is your enhancement request related to a problem? Please describe. I have nine brokers,when I kill one, the traffic of the remaining eight brokers will drop within 30 seconds, reach a peak after 30 seconds, and then return to normal. I found that the sending thread is blocked:
In other words, if the Producer queue corresponding to some partitions is full, the sending thread will be blocked, affecting the sending of other partitions
Describe the solution you'd like Isolate partitions to avoid mutual influence when sending exceptions
Describe alternatives you've considered PartitionedProducerImpl can automatically exclude Producers whose queues are full