apache/pulsar
在 GitHub 查看[Doc] Pulsar consumer config is missing to enable retry while mentioning retryletter config
Open
#24,775 创建于 2025年9月23日
doc-requiredgood first issue
描述
Search before reporting
- I searched in the issues and found nothing similar.
What issue do you find in Pulsar docs?
Issue found in Pulsar docs
While reading the examples for DeadLetterPolicy and retry/DLQ handling, I noticed that the documentation can be misleading about when .enableRetry(true) is required.
Currently, some examples show configuration of:
retryLetterProducerBuilderCustomizer(...)retryLetterTopic(...)
without calling .enableRetry(true).
Example of confusing snippet
// enable batch and disable chunking for the dead letter topic producer
// by default, the batch feature is disabled and the chunking feature is enabled
DeadLetterProducerBuilderCustomizer producerBuilderCustomizer = (context, producerBuilder) -> {
producerBuilder.enableBatching(true);
producerBuilder.enableChunking(false);
};
Consumer<byte[]> consumer = pulsarClient.newConsumer(Schema.BYTES)
.topic("my-topic")
.subscriptionName("my-subscription")
.subscriptionType(SubscriptionType.Shared)
.deadLetterPolicy(DeadLetterPolicy.builder()
.maxRedeliverCount(maxRedeliveryCount)
.deadLetterTopic("my-dead-letter-topic-name")
.deadLetterProducerBuilderCustomizer(producerBuilderCustomizer)
.retryLetterProducerBuilderCustomizer(producerBuilderCustomizer)
.build())
.subscribe();
What is your suggestion?
Example of suggested snippet
// enable batch and disable chunking for the dead letter topic producer
// by default, the batch feature is disabled and the chunking feature is enabled
DeadLetterProducerBuilderCustomizer producerBuilderCustomizer = (context, producerBuilder) -> {
producerBuilder.enableBatching(true);
producerBuilder.enableChunking(false);
};
Consumer<byte[]> consumer = pulsarClient.newConsumer(Schema.BYTES)
.topic("my-topic")
.subscriptionName("my-subscription")
.subscriptionType(SubscriptionType.Shared)
.enableRetry(true)
.deadLetterPolicy(DeadLetterPolicy.builder()
.maxRedeliverCount(maxRedeliveryCount)
.deadLetterTopic("my-dead-letter-topic-name")
.deadLetterProducerBuilderCustomizer(producerBuilderCustomizer)
.retryLetterProducerBuilderCustomizer(producerBuilderCustomizer)
.build())
.subscribe();
I wrote pr: https://github.com/apache/pulsar-site/pull/1041
I'm new to using pulsar. Kindly take a look and feel free to give me advice.
Any reference?
Are you willing to submit a PR?
- I'm willing to submit a PR!