dev 模式是不进行数据存储的,线上环境需要开启可存储数据的模式,非dev模式的单节点命令示例如下:
nohup ./consul-service/consul agent -server -bootstrap-expect 1 -data-dir ./consul-service/data -config-dir=./consul-service/config -client=0.0.0.0 -ui >./consul-service/consul.out&
简单解释下主要参数:
server : 定义 agent 运行在 server 模式。
bootstrap-expect :在一个 datacenter 中期望提供的 server 节点数目,当该值提供的时候,consul 一直等到达到指定 server 数目的时候才会引导整个集群,该标记不能和 bootstrap 共用。
bind:该地址用来在集群内部的通讯,集群内的所有节点到地址都必须是可达的,默认是 0.0.0.0。
data-dir:数据存储目录。
config-dir:配置目录。
client:Consul 服务侦听地址,这个地址提供 HTTP、DNS、RPC 等服务,默认是 127.0.0.1 所以不对外提供服务,如果你要对外提供服务改成 0.0.0.0。
ui:启动 Web 管理页面
3.3 集群运行
第一台机器 IP 为 172.17.0.3,3 台机器分别执行,均启动 ui:
consul agent -server -bootstrap-expect 3 -ui -node=node1 -client 0.0.0.0
consul agent -server -bootstrap-expect 3 -ui -node=node2 -client 0.0.0.0 -join 172.17.0.3
consul agent -server -bootstrap-expect 3 -ui -node=node3 -client 0.0.0.0 -join 172.17.0.3
此时三台机器上的数据会进行同步,如果需要保障客户端访问集群的可靠性,需要在中间加一层 nginx 或其他负载,配置方式此处略。