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 classes/interfaces inherited from interface org.springframework.pulsar.core.PulsarOperations
PulsarOperations.SendMessageBuilder<T>
-
Constructor Summary
ConstructorDescriptionPulsarTemplate
(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 abuilder
for configuring and sending a message.org.apache.pulsar.client.api.MessageId
Sends a message to the specified topic in a blocking manner.org.apache.pulsar.client.api.MessageId
Sends 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.void
setBeanName
(String beanName) void
Set 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 ornull
to 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:PulsarOperations
Sends a message to the default topic in a blocking manner.- Specified by:
send
in 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:PulsarOperations
Sends a message to the specified topic in a blocking manner.- Specified by:
send
in interfacePulsarOperations<T>
- Parameters:
topic
- the topic to send the message to ornull
to 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:PulsarOperations
Sends a message to the default topic in a non-blocking manner.- Specified by:
sendAsync
in 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:PulsarOperations
Sends a message to the specified topic in a non-blocking manner.- Specified by:
sendAsync
in interfacePulsarOperations<T>
- Parameters:
topic
- the topic to send the message to ornull
to 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:PulsarOperations
Create abuilder
for configuring and sending a message.- Specified by:
newMessage
in interfacePulsarOperations<T>
- Parameters:
message
- the payload of the message- Returns:
- the builder to configure and send the message
-
setBeanName
- Specified by:
setBeanName
in interfaceBeanNameAware
-
setSchema
Set the schema to use on this template.- Parameters:
schema
- provides theSchema
used on this template
-