2 Home
gitea_admin edited this page 2026-10-12 05:39:23 +00:00

Nats

Send and receive messages from NATS messaging system.

Metadata

Property Value
Scheme nats
Support Level Stable
Labels messaging
Version 4.20.0 (CEQ 3.36.0)

Maven Dependency

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-nats</artifactId>
    <version>4.20.0 (CEQ 3.36.0)</version>
</dependency>

Endpoint Properties

Name Type Required Default Description
topic string ✓ The name of topic we want to use
connectionTimeout integer 2000 Timeout for connection attempts. (in milliseconds)
flushConnection boolean true Define if we want to flush connection when stopping or not
flushTimeout integer 1000 Set the flush timeout (in milliseconds)
jetstreamEnabled boolean false Sets whether to enable JetStream support for this endpoint.
jetstreamName string Sets the name of the JetStream stream to use.
maxPingsOut integer 2 maximum number of pings have not received a response allowed by the client
maxReconnectAttempts integer 60 Max reconnection attempts
noEcho boolean false Turn off echo. If supported by the gnatsd version you are connecting to this flag will prevent the server from echoing messages back to the connection if it has subscriptions on the subject being published to.
noRandomizeServers boolean false Whether or not randomizing the order of servers for the connection attempts
pedantic boolean false Whether or not running in pedantic mode (this affects performance)
pingInterval integer 120000 Ping interval to be aware if connection is still alive (in milliseconds)
reconnect boolean true Whether or not using reconnection feature
reconnectTimeWait integer 2000 Waiting time before attempts reconnection (in milliseconds)
requestCleanupInterval integer 5000 Interval to clean up cancelled/timed out requests.
servers string URLs to one or more NAT servers. Use comma to separate URLs when specifying multiple servers.
verbose boolean false Whether or not running in verbose mode
ackPolicy enum Explicit Acknowledgement mode. none = Messages are acknowledged as soon as the server sends them (danger: messages that Camel failed to process is also ack). Clients do not need to ack. all = All messages with a sequence number less than the message acked are also acknowledged. E.g. reading a batch of messages 1..100. Ack on message 100 will acknowledge 1..99 as well. explicit (default) = Each message is acknowledged individually by Camel after the message has been processed, this ensures the message is only ack if success and nack if processing failed due to an exception during routing. Message can be acked out of sequence and create gaps of unacknowledged messages in the consumer.
ackWait integer 30000 After a message is delivered to a consumer, the server waits 30 seconds (default) for an acknowledgement. If none arrives (timeout), the message becomes eligible for redelivery.
durableName string Sets the name to assign to the JetStream durable consumer. Setting this value makes the consumer durable. The value is used to set the durable() field in the underlying NATS ConsumerConfiguration.Builder.
maxDeliver integer Maximum number of attempts to deliver a message from Nats to a consumer. Once MaxDeliver is reached, the NATS server stops attempting to deliver that specific message. The message is not deleted, it remains in the stream but is simply skipped. It is recommended to set this option to a sensible value in case a message is poison and can not successfully be processed and would always keep failing.
maxMessages string Stop receiving messages from a topic we are subscribing to after maxMessages
nackWait integer 5000 For negative acknowledgements (NAK), redelivery is delayed by 5 seconds (default). Setting this to 0 or negative makes the redelivery immediately. Be careful as this can cause the consumer to keep re-processing the same message over and over again due to intermediate error that last a while.
poolSize integer 10 Consumer thread pool size (default is 10)
pullSubscription boolean true Sets the consumer subscription type for JetStream. Set to true to use a Pull Subscription (consumer explicitly requests messages). Set to false to use a Push Subscription (messages are automatically delivered).
queueName string The Queue name if we are using nats for a queue configuration
replyToDisabled boolean false Can be used to turn off sending back reply message in the consumer.
bridgeErrorHandler boolean false Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. Important: This is only possible if the 3rd party component allows Camel to be alerted if an exception was thrown. Some components handle this internally only, and therefore bridgeErrorHandler is not possible. In other situations we may improve the Camel component to hook into the 3rd party component and make this possible for future releases. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.
consumerConfiguration object Sets a custom ConsumerConfiguration object for the JetStream consumer. This is an advanced option typically used when you need to configure properties not exposed as simple Camel URI parameters. When set, this object will be used to build the final consumer subscription options.
exceptionHandler object To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored.
exchangePattern enum Sets the exchange pattern when the consumer creates an exchange.
replySubject string the subject to which subscribers should send response
requestTimeout integer 20000 Request timeout in milliseconds
lazyStartProducer boolean false Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.
connection object Reference an already instantiated connection to Nats server
headerFilterStrategy object To use a custom header filter strategy.
jetstreamAsync boolean true Sets whether to operate JetStream requests asynchronously.
traceConnection boolean false Whether or not connection trace messages should be printed to standard out for fine grained debugging of connection issues.
credentialsFilePath string If we use useCredentialsFile to true we'll need to set the credentialsFilePath option. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.
secure boolean false Set secure option indicating TLS is required
sslContextParameters object To configure security using SSLContextParameters