Ubuntu16.04安装使用Consul
Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,比如 Airbnb 的 SmartStack 等相比,Consul 的方案更“一站式”,内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value 存储、多数据中心方案,不再需要依赖其他工具(比如 ZooKeeper 等)。使用起来也较 为简单。Consul 用 Golang 实现,因此具有天然可移植性(支持 Linux、windows 和 Mac OS X);安装包仅包含一个可执行文件,方便部署,与 Docker 等轻量级容器可无缝配合。
Consul功能
- 服务发现(Service Discovery):客户端通过 Consul 提供服务,其他客户端可以通过 Consul 利用 dns 或者 http 发现依赖服务
- 健康检查(Health Checking): Consul 提供任务的健康检查,可以用来操作或者监控集群的健康,也可以在服务发现时去除失效的服务
- 键值对存储(Key/Value Store): 存储层级键值对
- 多数据中心(Multi Datacenter): Consul 支持开箱即用的多数据中心
安装
#下载consul包
wget https://releases.hashicorp.com/consul/0.7.2/consul_0.7.2_linux_amd64.zip
#解压
unzip consul_0.7.2_linux_amd64.zip
#复制到/usr/local/bin下
sudo mv consul /usr/local/bin/consul
验证安装是否成功:
consul
usage: consul [--version] [--help] <command> [<args>]
Available commands are:
agent Runs a Consul agent
configtest Validate config file
event Fire a new event
exec Executes a command on Consul nodes
force-leave Forces a member of the cluster to enter the "left" state
info Provides debugging information for operators
join Tell Consul agent to join cluster
keygen Generates a new encryption key
keyring Manages gossip layer encryption keys
kv Interact with the key-value store
leave Gracefully leaves the Consul cluster and shuts down
lock Execute a command holding a lock
maint Controls node or service maintenance mode
members Lists the members of a Consul cluster
monitor Stream logs from a Consul agent
operator Provides cluster-level tools for Consul operators
reload Triggers the agent to reload configuration files
rtt Estimates network round trip time between nodes
snapshot Saves, restores and inspects snapshots of Consul server state
version Prints the Consul version
watch Watch for changes in Consul
Consul配置
Sever 模式,快捷配置,一般用于调试模式,不建议使用
consul agent -dev
Sever 模式
consul agent -server -bootstrap-expect 1 -data-dir /tmp/consul -ui -config-dir /etc/consul.d -bind=192.168.1.100
配置参数说明
- -server:- Serve 模式(不配置为 Client 模式),数量一般为 3-5 个
- -bootstrap-expect: - Server 数量
- -data-dir: - 数据目录
- -ui-dir: - UI目录
- -node: - Node名称
- -bind: - 集群通讯地址
Server 模式后台访问地址:http://localhost:8500
ctrl + c:停止服务
Client 模式
consul agent -data-dir /tmp/consul -node=ubuntu64 -bind=10.9.10.176
查看集群成员
consul members
查看当前服务器的状况
consul info
退出当前服务集群
consul leave
每天进步一点点