Skip to content

Commit

Permalink
[Doc]--Add Retry letter topic (apache#7257)
Browse files Browse the repository at this point in the history
### Motivation
This PR is to update doc for the PR: apache#6449

Doc contents have been approved by the previous PR  apache#7151. 
Because there are two many conflicts in that PR. So I close the original PR and re-create this PR.


### Modifications
Add retry letter topic in concept> messaging doc.
  • Loading branch information
Huanli-Meng authored and huangdx0726 committed Aug 24, 2020
1 parent 1b86a31 commit e6d5d76
Showing 1 changed file with 23 additions and 0 deletions.
23 changes: 23 additions & 0 deletions site2/docs/concepts-messaging.md
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,29 @@ Dead letter topic depends on message re-delivery. Messages are redelivered eithe
> Note
> Currently, dead letter topic is enabled only in the shared subscription mode.
### Retry letter topic

For many online business systems, a message needs to be re-consumed because any exception occurs in the business logic processing. Generally, users hope that they can flexibly configure the delay time for re-consuming the failed messages. In this case, you can configure the producer to send messages to both the business topic and the retry letter topic and you can enable automatic retry on the consumer. When automatic retry is enabled on the consumer, a message is stored in the retry letter topic if the messages fail to be consumed and therefore the consumer can automatically consume failed messages from the retry letter topic after a specified delay time.

By default, automatic retry is disabled. You can set `enableRetry` to `true` to enable automatic retry on the consumer.

This example shows how to consumer messages from a retry letter topic.

```java
Consumer<byte[]> consumer = pulsarClient.newConsumer(Schema.BYTES)
.topic(topic)
.subscriptionName("my-subscription")
.subscriptionType(SubscriptionType.Shared)
.enableRetry(true)
.receiverQueueSize(100)
.deadLetterPolicy(DeadLetterPolicy.builder()
.maxRedeliverCount(maxRedeliveryCount)
.retryLetterTopic("persistent://my-property/my-ns/my-subscription-custom-Retry")
.build())
.subscriptionInitialPosition(SubscriptionInitialPosition.Earliest)
.subscribe();
```

## Topics

As in other pub-sub systems, topics in Pulsar are named channels for transmitting messages from [producers](reference-terminology.md#producer) to [consumers](reference-terminology.md#consumer). Topic names are URLs that have a well-defined structure:
Expand Down

0 comments on commit e6d5d76

Please sign in to comment.