尽管NATS可以无配置的运行,但也可以使用配置文件配置NATS服务的启动,在实际应用当中,一般都是通过使用配置文件来启动服务的。
1. 配置项包括
- 客户端监听器端口 Client listening port
- HTTP监听器端口 HTTP monitoring port
- 客户端认证 Client auth
- 集群定义 Cluster definitions
- 集群路由 Cluster routes
- 日志 Logging
- 最大客户端连接数 Max client connections
- 最大有效负载 Max payload
2. 配置文件的语法
NATS服务器配置文件的格式比较灵活,结合了传统的JSON格式和新的YAML格式的风格。
NATS配置文件格式支持以下语法:
- 数组形式: […]
- 内嵌Map形式: {…}
- 配置注释标识: # and //
-
Key-value赋值使用:
等号 (foo = 2)
冒号 (foo: 2)
空格 (foo 2) -
Maps can be assigned with no key separator
- Semicolons as value terminators in key/value assignments are optional
注:YAML不是标记语言,而是一种语言中立的、对阅读友好的数据序列化标准。YAML语言发展了三个版本,1.0、1.1、1.2,
3. NATS服务器配置文件示例
下面是一个完整的NATS服务器配置文件样例:
# 供客户端连接的监听端口
port: 6222
# 监听的网络地址
#net: apcera.me
# HTTP监控端口
http_port: 8224
# 客户端连接的认证信息,可以使用多个用户与变量
authorization {
PASS: liang637210
users = [
{user: test, password: test}
{user: liang, password: $PASS}
]
timeout: 1
}
# 集群定义
cluster {
host: '127.0.0.1' # 主机地址
port: 4248 # 路由内部连接端口
# 路由连接的认证信息
authorization {
user: test
password: test
timeout: 1
}
# 通过下面的路由配置且可以提供正确的凭证,那么其他服务就可以通过路由连接到这个服务上
routes = [
nats-route://test:test@127.0.0.1:4244
nats-route://test:test@127.0.0.1:4246
]
}
# 日志选项
debug: false
trace: true
logtime: false
log_file: "/Users/mfw/Desktop/nats-temp/gnatsd_c.log"
# pid 进程文件
pid_file: "/Users/mfw/Desktop/nats-temp/gnatsd_c.pid"
# 一些系统属性
# 客户端最大连接数
max_connections: 100
# 最大协议控制行
max_control_line: 512
# 最大的有效负载
max_payload: 65536
通过以上对配置文件的详细说明,那么我们以后再应用中就可以配置好相应的文件之后再启动服务,可以实现我们所有想要的功能。