@Documented
@Retention(value=RUNTIME)
@Target(value=METHOD)
@Executable
public @interface PulsarConsumer
| Modifier and Type | Required Element and Description |
|---|---|
java.lang.String |
consumerName |
| Modifier and Type | Optional Element and Description |
|---|---|
java.lang.String |
ackTimeout
By default, it will use default value of
ConsumerBuilder which is disabled
and no redelivery happens unless consumer crashed. |
java.lang.String |
deadLetterTopic
Default is fallback to Pulsar Client Java library.
|
int |
maxRetriesBeforeDlq |
int |
patternAutoDiscoveryPeriod
Used in combination with
topicsPattern(). |
int |
priorityLevel
By default no priority is set.
|
int |
receiverQueueSize |
MessageSchema |
schema
|
boolean |
subscribeAsync
By default, consumer should subscribe in non-blocking manner using default
CompletableFuture
of ConsumerBuilder.subscribeAsync(). |
java.lang.String |
subscription |
org.apache.pulsar.client.api.RegexSubscriptionMode |
subscriptionTopicsMode
Ignored if
topics() attribute is set. |
org.apache.pulsar.client.api.SubscriptionType |
subscriptionType |
@Pattern(regexp="((non-)?persistent://)?(\\w+(-|\\w+)*\\w/){2}\\w+(-|\\w+)*\\w") java.lang.String |
topic
Has precedence over
topics() and topicsPattern(). |
@Pattern(regexp="((non-)?persistent://)?(\\w+(-|\\w+)*\\w/){2}\\w+(-|\\w+)*\\w") java.lang.String[] |
topics
Has precedence over
topicPattern. |
@Pattern(regexp="((non-)?persistent://)?(\\w+(-?\\w+)?/){2}.+") java.lang.String |
topicsPattern
Ignored if
topics attribute is set. |
@Pattern(regexp="((non-)?persistent://)?(\\w+(-|\\w+)*\\w/){2}\\w+(-|\\w+)*\\w") java.lang.String |
value |
public abstract java.lang.String consumerName
@AliasFor(member="topic") @AliasFor(annotation=io.micronaut.messaging.annotation.MessageMapping.class,member="value")
@Pattern(regexp="((non-)?persistent://)?(\\w+(-|\\w+)*\\w/){2}\\w+(-|\\w+)*\\w")
public abstract @Pattern(regexp="((non-)?persistent://)?(\\w+(-|\\w+)*\\w/){2}\\w+(-|\\w+)*\\w") java.lang.String value
topic()@Pattern(regexp="((non-)?persistent://)?(\\w+(-|\\w+)*\\w/){2}\\w+(-|\\w+)*\\w")
@AliasFor(member="value") @AliasFor(annotation=io.micronaut.messaging.annotation.MessageMapping.class,member="value")
public abstract @Pattern(regexp="((non-)?persistent://)?(\\w+(-|\\w+)*\\w/){2}\\w+(-|\\w+)*\\w") java.lang.String topic
topics() and topicsPattern().
Single topic to consume messages from.@Pattern(regexp="((non-)?persistent://)?(\\w+(-|\\w+)*\\w/){2}\\w+(-|\\w+)*\\w")
@AliasFor(annotation=io.micronaut.messaging.annotation.MessageMapping.class,
member="value")
public abstract @Pattern(regexp="((non-)?persistent://)?(\\w+(-|\\w+)*\\w/){2}\\w+(-|\\w+)*\\w") java.lang.String[] topics
topicPattern.@Pattern(regexp="((non-)?persistent://)?(\\w+(-?\\w+)?/){2}.+")
@AliasFor(annotation=io.micronaut.messaging.annotation.MessageMapping.class,
member="value")
public abstract @Pattern(regexp="((non-)?persistent://)?(\\w+(-?\\w+)?/){2}.+") java.lang.String topicsPattern
topics attribute is set.public abstract MessageSchema schema
public abstract java.lang.String subscription
PulsarSubscription annotated classpublic abstract org.apache.pulsar.client.api.SubscriptionType subscriptionType
PulsarSubscription annotated classpublic abstract org.apache.pulsar.client.api.RegexSubscriptionMode subscriptionTopicsMode
topics() attribute is set.
Default value RegexSubscriptionMode.AllTopics
Whether to read topics from persistent, or non-persistent storage, or both.
public abstract int patternAutoDiscoveryPeriod
topicsPattern(). Ignored using topics(). Must be greater than
1. Low values should be avoided. Pulsar default value is 1 minutepublic abstract boolean subscribeAsync
CompletableFuture
of ConsumerBuilder.subscribeAsync().
If blocking set to false application will block until consumer is successfully subscribed. This is different from the actual process of consuming the messages which still happens in separate thread managed by the underlying Pulsar Client library.
public abstract java.lang.String ackTimeout
ConsumerBuilder which is disabled
and no redelivery happens unless consumer crashed.
Must be greater than 1s.
ConsumerBuilder.ackTimeout(long, java.util.concurrent.TimeUnit)public abstract int receiverQueueSize
public abstract int priorityLevel
ConsumerBuilder.priorityLevel(int)