盡管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
通過以上對配置文件的詳細說明,那么我們以后再應用中就可以配置好相應的文件之后再啟動服務,可以實現我們所有想要的功能。