Consul基础
简介
服务发现,提供了DNS和HTTP两种接口
健康检查,可针对服务和节点两个级别检查
KV存储,提供HTTP接口
多数据中心支持
基础
概览
通过一个WAN的Gossip池来原生支持跨数据中心的状态同步 一个数据中心内部通过LAN Gossip来维持数据中心内部状态同步 一个数据中心内部通过Raft协议来维护在Server模式的agent之间的leader选举和同步数据 Client模式下的agent负责转发RPC请求给Server模式的agent 所有的agent都负责做健康检查Raft
Raft一致性算法是Consul的核心,用于在一个数据中心内部的Server之间同步数据,关于Raft算法这里有个非常直观的演示。
Gossip
Gossip分布式通信协议是Consul的另一个核心,用于管理成员和广播消息。
Agent
Consul要在集群的所有的节点上部署一个agent,可以工作在client或者server模式。client模式agent主要职责是做健康检查,对外提供HTTP和DNS接口以及同步数据,以及向server模式的agent转发请求;server模式的agent额外的需要维护集群的状态跨数据中心通信等。
安装consul仅有一个二进制文件,开箱即用。 从这里下载。
启动启动Server模式的agent
consul agent -server -bootstrap-expect 1 -data-dir /tmp/consul -ui-dir /tmp/dist -client=0.0.0.0
注意: --ui-dir
启动了Consul的web-ui, 该参数是可选的。
启动Client模式的agent
consul agent -data-dir=/tmp/consul
加入集群
consul join peer-ip安全
0.4之后的版本开始支持ACL控制,控制对象包括kv和service,这里我们给出初始的ACL配置config.json:
{ "acl_datacenter": "dc1", "acl_master_token": "changeme", "acl_token": "ttSsL3mx3k9vqd5OzXgD", "acl_default_policy": "deny" }
启动的时候添加 -config-file=config.json
即可
Consul的systemd配置文件
[Unit] Description=consul agent Requires=network-online.target After=network-online.target [Service] EnvironmentFile=-/etc/sysconfig/consul Environment=GOMAXPROCS=2 Restart=on-failure ExecStart=/usr/local/sbin/consul agent $OPTIONS ExecReload=/bin/kill -HUP $MAINPID KillSignal=SIGINT [Install] WantedBy=multi-user.target
文章来源:
Author:admin
link:http://xdays.me/Consul基础.html
下一篇:搭建私有pypi仓库
上一篇:U盘安装CentOS7系统