agent有各種各樣的配置選項,這些配置選項可以通過命令列引數的方式設定,也可用通過配置檔案的方式設定——所有的配置選項都是可選的,當然也是有預設值的。
當載入配置選項時,consul是按照詞典順序從所有配置檔案或目錄中載入。比如,basic_config.json會先於extra_config.json處理。後面設定的配置選項會合併到前面的配置集合中,如果存在重複的配置選項則會覆蓋。當然,在某些情況下,比如事件處理程式,後面處理程式會追加到現有的配置選項中,形成事件處理程式列表。
如下都是可以在命令列指定的引數:
ø -config-file
需要載入的配置檔案,在檔案中都是json格式的資訊,該引數可以多次配置,後面檔案中載入的引數會覆蓋前面載入檔案中的引數。
ø -config-dir
需要載入的配置檔案目錄,consul將載入目錄下所有字尾為「.json」的檔案,載入順序為字母順序,檔案中配置選項合併方式如config-file。該引數可以多次配置。目錄中的子目錄是不會載入的。
ø -data-dir
此目錄是為agent存放state資料的。是所有agent需要的,該目錄應該存放在持久儲存中(reboot不會丟失),對於server角色的agent是很關鍵的——需要記錄集群狀態。並且該目錄是支援檔案鎖。
ø -log-level
日誌級別。預設為info。有如下級別:"trace","debug", "info", "warn", and "err"。可以使用consul monitor來連線agent檢視日誌。日誌級別可以在reload時進行改變。
ø -syslog
將日誌記錄進syslog(僅支援linux和osx平台)
ø -pid-file
記錄pid的檔案
ø -server
設定agent是server模式還是client模式。consul agent有兩種執行模式:server和client。這裡的server和client只是consul集群層面的區分,與搭建在cluster之上 的應用服務無關。consule server模式agent節點用於採用raft演算法維護consul集群的狀態,官方建議每個consul cluster至少有3個或以上的執行在server mode的agent,client節點不限。
ø -client
將繫結到client介面的位址,可以是http、dns、rpc伺服器。預設為「127.0.0.1」——只允許迴路連線。rpc位址會被其他的consul命令使用,比如consul members——查詢agent列表
ø -node
節點在集群的名字,在集群中必須是唯一的。預設為節點的hostname
ø -bootstrap
設定服務是否為「bootstrap」模式。如果資料中心只有1個server agent,那麼需要設定該引數。從技術上來講,處於bootstrap模式的伺服器是可以選擇自己作為raft leader的。在consul集群中,只有乙個節點可以配置該引數,如果有多個引數配置該引數,那麼難以保證一致性。
ø -bootstrap-expect
資料中心期望的server agent數目,不能與bootstrap一起使用。此引數要麼不配置,要麼consul集群中所有的server均配置相同的值。如果配置了該引數,只想當consul集群中有效server agent的數目達到此數量時才會引導集群啟動。
ø -dc
資料中心的名字
ø -bind
用於集群內部通訊的ip位址,與集群中其他節點互連可通。預設為「0.0.0.0」——consul將使用第乙個有效的私有ipv4位址。如果指定「[::]」,consul將使用第乙個有效的公共ipv6位址。使用tcp和udp通訊。注意防火牆,避免無法通訊。
除了命令列配置外,配置選項也可以存放在檔案中。這種方式在某種情況下是非常方便的,比如,配置選項是由配置管理系統來管理。
配置檔案都是json格式的,是易讀和易編輯的——在檔案中,每乙個json物件都是格式化的。
配置檔案不僅僅可以設定agent,而且還能夠提供check和service定義。參見check配置和service配置。check配置與service配置均是可通過reload更新的。
1.1.2.1 示例
配置檔案示例
],
"telemetry":
}
配置檔案示例(tls)
,
"ports": ,
"key_file":
"/etc/pki/tls/private/my.key",
"cert_file":
"/etc/pki/tls/certs/my.crt",
"ca_file":
"/etc/pki/tls/certs/ca-bundle.crt"
}1.1.2.2 引數說明
ø datacenter
同命令列引數-datacenter
ø data_dir
同命令列引數-data_dir
ø bootstrap
同命令列引數-bootstrap
ø bootstrap_expect
同命令列引數-bootstrap_expect
ø bind_addr
同命令列引數-bind
ø enable_syslog
同命令列引數-syslog
ø log_level
同命令列引數-log_level
ø node_name
同命令列引數node
reload配置 並不能reload所有配置選項,下面的選項可以過載:
consul consul的鎖應用
在建設資料庫高可用的時候,採用了consul的機制實現,在開發相關元件的時候,使用了consul的鎖機制。但是由於使用的不正確,帶來了一些問題,下面主要介紹我的使用場景及使用方式,出現的問題,以及正確的使用方法。在進行資料庫高可用的選舉元件設計時,考慮使用consul的鎖來進行consul serv...
hibernate SQLQuery實踐指南
兩個表 實體 1對多雙向關聯 班級 clazz id,name 學生 student id,name class id 1.1 簡單查詢,返回資料庫結構 view plain copy to clipboard print?sql?select?c.from?clazz?c,student?s?wh...
hibernate SQLQuery實踐指南
hibernate sqlquery實踐指南 兩個表 實體 1對多雙向關聯 班級 clazz id,name 學生 student id,name class id 1.查詢持久化物件 1.1 簡單查詢,返回資料庫結構 sql select c.from clazz c,student s wher...