Package org.springframework.pulsar.core
Class PulsarTemplate<T>
java.lang.Object
org.springframework.pulsar.core.PulsarTemplate<T>
- Type Parameters:
T- the message payload type
- All Implemented Interfaces:
Aware,BeanNameAware,PulsarOperations<T>
A thread-safe template for executing high-level Pulsar operations.
- Author:
- Soby Chacko, Chris Bono, Alexander Preuß, Christophe Bornet
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from interface org.springframework.pulsar.core.PulsarOperations
PulsarOperations.SendMessageBuilder<T> -
Constructor Summary
ConstructorsConstructorDescriptionPulsarTemplate(PulsarProducerFactory<T> producerFactory) Construct a template instance.PulsarTemplate(PulsarProducerFactory<T> producerFactory, List<org.apache.pulsar.client.api.interceptor.ProducerInterceptor> interceptors) Construct a template instance with optional interceptors.PulsarTemplate(PulsarProducerFactory<T> producerFactory, List<org.apache.pulsar.client.api.interceptor.ProducerInterceptor> interceptors, io.micrometer.observation.ObservationRegistry observationRegistry, PulsarTemplateObservationConvention observationConvention) Construct a template instance with optional interceptors and observation configuration. -
Method Summary
Modifier and TypeMethodDescriptionnewMessage(T message) Create abuilderfor configuring and sending a message.org.apache.pulsar.client.api.MessageIdSends a message to the specified topic in a blocking manner.org.apache.pulsar.client.api.MessageIdSends a message to the default topic in a blocking manner.CompletableFuture<org.apache.pulsar.client.api.MessageId>Sends a message to the specified topic in a non-blocking manner.CompletableFuture<org.apache.pulsar.client.api.MessageId>Sends a message to the default topic in a non-blocking manner.voidsetBeanName(String beanName) voidSet the schema to use on this template.
-
Constructor Details
-
PulsarTemplate
Construct a template instance.- Parameters:
producerFactory- the factory used to create the backing Pulsar producers.
-
PulsarTemplate
public PulsarTemplate(PulsarProducerFactory<T> producerFactory, @Nullable List<org.apache.pulsar.client.api.interceptor.ProducerInterceptor> interceptors) Construct a template instance with optional interceptors.- Parameters:
producerFactory- the factory used to create the backing Pulsar producers.interceptors- the interceptors to add to the producer.
-
PulsarTemplate
public PulsarTemplate(PulsarProducerFactory<T> producerFactory, @Nullable List<org.apache.pulsar.client.api.interceptor.ProducerInterceptor> interceptors, @Nullable io.micrometer.observation.ObservationRegistry observationRegistry, @Nullable PulsarTemplateObservationConvention observationConvention) Construct a template instance with optional interceptors and observation configuration.- Parameters:
producerFactory- the factory used to create the backing Pulsar producersinterceptors- the optional list of interceptors to add to the producerobservationRegistry- the registry to record observations with ornullto not record observationsobservationConvention- the optional custom observation convention to use when recording observations
-
-
Method Details
-
send
public org.apache.pulsar.client.api.MessageId send(T message) throws org.apache.pulsar.client.api.PulsarClientException Description copied from interface:PulsarOperationsSends a message to the default topic in a blocking manner.- Specified by:
sendin interfacePulsarOperations<T>- Parameters:
message- the message to send- Returns:
- the id assigned by the broker to the published message
- Throws:
org.apache.pulsar.client.api.PulsarClientException- if an error occurs
-
send
public org.apache.pulsar.client.api.MessageId send(@Nullable String topic, T message) throws org.apache.pulsar.client.api.PulsarClientException Description copied from interface:PulsarOperationsSends a message to the specified topic in a blocking manner.- Specified by:
sendin interfacePulsarOperations<T>- Parameters:
topic- the topic to send the message to ornullto send to the default topicmessage- the message to send- Returns:
- the id assigned by the broker to the published message
- Throws:
org.apache.pulsar.client.api.PulsarClientException- if an error occurs
-
sendAsync
public CompletableFuture<org.apache.pulsar.client.api.MessageId> sendAsync(T message) throws org.apache.pulsar.client.api.PulsarClientException Description copied from interface:PulsarOperationsSends a message to the default topic in a non-blocking manner.- Specified by:
sendAsyncin interfacePulsarOperations<T>- Parameters:
message- the message to send- Returns:
- a future that holds the id assigned by the broker to the published message
- Throws:
org.apache.pulsar.client.api.PulsarClientException- if an error occurs
-
sendAsync
public CompletableFuture<org.apache.pulsar.client.api.MessageId> sendAsync(@Nullable String topic, T message) throws org.apache.pulsar.client.api.PulsarClientException Description copied from interface:PulsarOperationsSends a message to the specified topic in a non-blocking manner.- Specified by:
sendAsyncin interfacePulsarOperations<T>- Parameters:
topic- the topic to send the message to ornullto send to the default topicmessage- the message to send- Returns:
- a future that holds the id assigned by the broker to the published message
- Throws:
org.apache.pulsar.client.api.PulsarClientException- if an error occurs
-
newMessage
Description copied from interface:PulsarOperationsCreate abuilderfor configuring and sending a message.- Specified by:
newMessagein interfacePulsarOperations<T>- Parameters:
message- the payload of the message- Returns:
- the builder to configure and send the message
-
setBeanName
- Specified by:
setBeanNamein interfaceBeanNameAware
-
setSchema
Set the schema to use on this template.- Parameters:
schema- provides theSchemaused on this template
-