简介

consul提供了服务注册与发现框 架、分布一致性协议实现、健康检查、KV存储、多数据中心方案等功能。

  • 一致性:采用的是RAFT算法保证分布式节点的一致性。

  • 服务发现:采用httpdns协议。

  • 服务注册:1、通过http API,由服务自己调用API实现注册,2、通过JSON配置文件实现注册,将需要注册的服务以JSON格式的配置文件给出。

  • 服务间的通讯协议:使用gossip协议管理成员关系、广播消息到整个集群

角色

1、client

客户端模式:将所有注册到当前节点的服务会被转发到server,自己是不持久化数据。

2、server

server模式:功能和客户端模式一样,不同的是会把所有的信息持久化的本地。

3、server-leader

server leader模式:其它server的领导者,和其它server不一样的是需要负责同步注册的信息给其它的server,同时也要负责各个节点的健康监测。

安装

CentOS 上可以直接使用yum进行安装

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
sudo yum -y install consul

也可以直接下载二进制包,解压就可以直接使用。

tar zxvf consul_1.9.6_linux_amd64.zip  -C /usr/local/bin/

启动服务(单节点)

nohup consul  agent -server -data-dir=/data/consul-data/  -node=node1 -bind=0.0.0.0 -bootstrap-expect=1 -client=0.0.0.0 -ui > /data/consul-data/consul.log  &
  • –server 指定server agent
  • –data-dir l数据存储路径
  • –bootstrap-expect 期望的server节点数目,consul一直等到指定sever数目才会引导整个集群
  • –bind:该地址用来在集群内部的通讯,集群内的所有节点到地址都必须是可达的,默认是0.0.0.0
  • –node:节点在集群中的名称,在一个集群中必须是唯一的,默认是该节点的主机名
  • –ui: web的管理ui,查看服务和节点,可以通过访问:8500端口要访问UI
  • –client:提供HTTP、DNS、RPC等服务,默认是127.0.0.1,不对外提供服务,如果需要则改成0.0.0.0

单节点扩容

nohup consul agent -bind=0.0.0.0 -client=0.0.0.0 -data-dir=/data/consul-data/ -node=node2 -join=192.168.122.100 > /data/consul-data/consul.log 2>&1 &

192.168.122.100就是刚才那台服务器的IP

总结

consul部署很方便,可以试试。