一:consul介绍#
consul用于提供服务发现和服务配置的工具。有以下特性:
1. 服务发现
consul的客户端提供一个服务,比如api或者mysql,另外一个客户端就可以去发现指定服务的服务提供者。通过DNS或者HTTP应用程序可以容易找到所依赖的服务
2. 健康检查
consul 可以提供健康检查服务(比如:webserver是否返回了200 ok状态码)或者使用本地节点(比如:内存使用大于90%)。这个信息可以监视集群的健康。可以用来避免将流量发送到不健康的主机
3.key/value 存储
应用程序可以使用consul的层级的key/value存储,比如动态配置,协调服务。直接可以用HTTP API来操作
4.多数据中心
consul支持开箱即用的多数据中心。
二:consul安装配置#
consul的安装非常容易,直接到 https://www.consul.io/downloads.html 下载你所在平台的安装包,可以直接下载二进制包, 然后unzip解压,会得到一个 consul 的文件,然后把它 cp 到/usr/local/bin 目录下
验证安装:在终端下直接输入 consul ,输出下面的内容说明安装成功
Usage: consul [--version] [--help] []
Available commands are:
agent Runs a Consul agent
catalog Interact with the catalog
connect Interact with Consul Connect
event Fire a new eventexec Executes a command on Consul nodes
force-leave Forces a member of the cluster to enter the "left"state
info Provides debugging informationforoperators.
intention Interact with Connect service intentions
join Tell Consul agent to join cluster
keygen Generates anewencryption key
keyring Manages gossip layer encryption keys
kv Interact with the key-value store
leave Gracefully leaves the Consul cluster and shuts downlock Execute a command holding a lockmaint Controls node or service maintenance mode
members Lists the members of a Consul cluster
monitor Stream logsfroma Consul agentoperator Provides cluster-level tools forConsul 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
validate Validate config files/directories
version Prints the Consul version
watch Watchfor changes in Consul
三:consul启动#
完成consul的安装后,必须运行agent. agent可以运行为 server 或者 client模式。还有个开发模式dev。 每个数据中心至少必须拥有一台server。建议在一个集群中有3或者5个server。部署单一server,在出现失败时,会不可避免的出现数据丢失。
以dev模式启动consul
还有一个特殊的运行模式 -dev的模式,命令如下
./consul agent -dev
说明:
-dev 表示开发模式运行,默认客户端地址是在127.0.0.1 上
-dev(该节点的启动不能用于生产环境,因为该模式下不会持久化任何状态),该启动模式仅仅是为了快速便捷的启动单节点consul
以server模式启动consul
consul agent -server -bind=192.168.0.109 -data-dir=/etc/consul.d
其实没有 -server,默认就是以client模式启动的
以client模式启动consul
consul agent -client=0.0.0.0 -bind=192.168.0.109 -data-dir=/etc/consul.d
四:consul的常用命令#
consul常用命令+常用选项
agent
作用:运行一个consul agent
join
作用:将agent加入到consul cluster
members
作用:列出consul cluster集群中的members
常用选项option:
-data-dir
作用:指定agent储存状态的数据目录
这是所有agent都必须的
对于server尤其重要,因为他们必须持久化集群的状态
-config-dir
作用:指定service的配置文件和检查定义所在的位置
通常会指定为"某一个路径/consul.d"(通常情况下,.d表示一系列配置文件存放的目录)
-config-file
作用:指定一个要装载的配置文件
该选项可以配置多次,进而配置多个配置文件(后边的会合并前边的,相同的值覆盖)
-dev
作用:创建一个开发环境下的server节点
该参数配置下,不会有任何持久化操作,即不会有任何数据写入到磁盘
这种模式不能用于生产环境(因为第二条)
-bootstrap-expect
作用:该命令通知consul server我们现在准备加入的server节点个数,该参数是为了延迟日志复制的启动直到我们指定数量的server节点成功的加入后启