Chapter 116. NATS

NATS Component

NATS is a fast and reliable messaging platform.
Maven users will need to add the following dependency to their pom.xml for this component.
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-nats</artifactId>
    <!-- use the same version as your Camel core version -->
    <version>x.y.z</version>
</dependency>

URI format

nats:servers[?options]
Where servers represents the list of NATS servers.

Options

Name
Default Value
Description
servers
null
Defines the servers the component should connect to.
topic null The topic to subscribe/publish to.
reconnect true Whether or not to use the reconnection feature.
pedantic false Whether or not running in pedantic mode (this affects performance).
verbose false Whether or not running in verbose mode
ssl false Whether or not to use SSL
reconnectTimeWait 2000 Waiting time before attempts reconnection (in milliseconds)
maxReconnectAttempts 3 Set the maximum number of reconnection attempts in case the connection is lost.
pingInterval 4000 Ping interval to be aware if connection is still alive (in milliseconds)
noRandomizeServers false Whether or not to randomize the order of servers for the connection attempts
queueName null The Queue name if we are using NATS for a queue configuration (consumer).
maxMessages null Stop receiving messages from a topic we are subscribing to after maxMessages (consumer).
poolSize 10 Pool size for consumer workers (consumer).

Headers

NameTypeDescription
CamelNatsMessageTimestamp
long The timestamp of a consumed message.
CamelNatsSubscriptionId
Integer
The subscription ID of a consumer.
Producer example:
from("direct:send").to("nats://localhost:4222?topic=test");
Consumer example:
from("nats://localhost:4222?topic=test&maxMessages=5&queueName=test").to("mock:result");