如果该阻塞队列已满时,继续向该阻塞队列发送消息会抛出异常(PulsarClientException.ProducerQueueIsFullError)。阻塞队列的最大大小可以进行配置。 send timeout sendTimeout(int sendTimeout, TimeUnit unit)允许在发送的时候设置一个timeout,如果超过这个时间消息还没有被确认,将会抛出一个错误。 注意:如果我们将timeou...
When I config the stream from kafka to pulsar ,met one exception java.util.concurrent.ExecutionException: org.apache.pulsar.client.api.PulsarClientException$ProducerQueueIsFullError: Producer send queue is full at java.util.concurrent.Co...
`MultiSchema`", producerName, topic) + , msg.getSequenceId()); completeCallbackAndReleaseSemaphore(callback, e); return false; } @@ -626,7 +628,7 @@ public class ProducerImpl<T> extends ProducerBase<T> implements TimerTask, Conne } } - private boolean isValidProducerState(SendCallback ...
如果这个队列满了,producer所有的 sendAsync 和 send 都会失败,除非设置了 blockIfQueueFull 值是 true。blockIfQueueFull:Producer 发送消息时会把消息先放入本地 Queue 缓存,如果缓存满了,就会阻塞消息发送。roundRobinRouterBatchingPartition-SwitchFrequency:如果发送消息时没有指定 key,那默认采用 round robin 的方式...
maxPendingMessages:等待从 broker 接收 ACK 的消息队列最大长度。如果这个队列满了,producer 所有的 sendAsync 和 send 都会失败,除非设置了 blockIfQueueFull 值是 true。 blockIfQueueFull:Producer 发送消息时会把消息先放入本地 Queue 缓存,如果缓存满了,就会阻塞消息发送。
默认1000.maxPendingMessages(1000)//设置等待接受来自broker确认消息的队列的最大大小,默认1000.blockIfQueueFull(true)//设置当消息队列中等待的消息已满时,Producer.send 和 Producer.sendAsync 是否应该block阻塞。默认为false,达到maxPendingMessages后send操作会报错,设置为true后,send操作阻塞但是不报错。建议设置为...
maxPendingMessages:等待从 broker 接收 ACK 的消息队列最大长度。如果这个队列满了,producer 所有的 sendAsync 和 send 都会失败,除非设置了 blockIfQueueFull 值是 true。 blockIfQueueFull:Producer 发送消息时会把消息先放入本地 Queue 缓存,如果缓存满了,就会阻塞消息发送。
pulsar.producer.blocklfQueueFull=true 为了提高效率,我们采用异步发送消息,需要开启阻塞队列处理,否则可能会出现消息丢失。调用异步发送超时,发送至异常 topic。如果在异步超时重发消息时,出现消息重复,可以通过开启自动去重功能进行处理;其它情况下出现的消息发送超时,需要单独处理,我们将这些消息存储在异常 topic 中,后续...
producerName:生产者名称,不指定会自动生成唯一名称 sendTimeoutMs:写入消息的超时时间 maxPendingMessages:内存队列中尚未被服务端确认写入的消息数量,默认1000 blockIfQueueFull:内存队列满了的处理行为,True 阻塞客户端的写入,False不阻塞队列抛出异常,默认False ...
ProducerConfiguration producerConf; producerConf.setBlockIfQueueFull(true); producerConf.setSendTimeout(5000); // 生产者 Producer producer; // 创建生产者 Result result=client.createProducer( // topic完整路径,格式为persistent://集群(租户)ID/命名空间/Topic名称 ...