Clustering Configuration
The cluster configuration map has the following configuration options:
Property
Description
host
Interface where the gateway will listen for incoming route connections.
port
Port where the gateway will listen for incoming route connections.
name
Name of the cluster (recommended for NATS +v2.2)
listen
Combines host and port as <host>:<port>.
tls
A tls configuration map for securing the clustering connection. verify is always enabled and cert_file is used for client and server. See for certificate pitfalls.
advertise or cluster_advertise
Hostport <host>:<port> to advertise how this server can be contacted by other cluster members. This is useful in setups with NAT. When using TLS this is important to set to control the hostname that clients will use when discovering the route since by default this will be an IP, otherwise TLS hostname verification may fail with an IP SANs error.
no_advertise
When set to 'true', the server will not send or gossip its client URLs to other servers in the cluster and will not tell its client about the other servers' client URLs.
routes
A list of other servers (URLs) to cluster with. Self-routes are ignored. Should authentication via token or username/password be required, specify them as part of the URL.
connect_retries
After how many failed connect attempts to give up establishing a connection to a discovered route. Default is 0, do not retry. When enabled, attempts will be made once a second. This, does not apply to explicitly configured routes.
authorization
Authorization map for configuring cluster routes. When a single username/password is used, it defines the authentication mechanism this server expects, and how this server will authenticate itself when establishing a connection to a discovered route. This will not be used for routes explicitly listed in routes and therefore have to be provided as part of the URL. With this authentication mode, either use the same credentials throughout the system or list every route explicitly on every server. If the tls configuration map specifies verify_and_map only provide the expected username. Here different certificates can be used, but they have to map to the same username. The authorization map also allows for timeout which is honored but users and token configuration are not supported and will prevent the server from starting. The permissions block is ignored.
1
cluster {
2
name: example
3
4
# host/port for inbound route connections from other server
5
listen: localhost:4244
6
7
# Authorization for route connections
8
# Other server can connect if they supply the credentials listed here
9
# This server will connect to discovered routes using this user
10
authorization {
11
user: route_user
12
password: pwd
13
timeout: 0.5
14
}
15
16
# This server establishes routes with these server.
17
# This server solicits new routes and Routes are actively solicited and connected to from this server.
18
# Other servers can connect to us if they supply the correct credentials
19
# in their routes definitions from above.
20
routes = [
21
nats-route://route_user:[email protected]:4245
22
nats-route://route_user:[email protected]:4246
23
]
24
}
Copied!
Last modified 10d ago
Export as PDF
Copy link
Edit on GitHub