简介:Consul
是HashiCorp公司推出的开源工具,Consul由Go语言开发,部署起来非常容易,只需要极少的可执行程序和配置文件,具有绿色、轻量级的特点。Consul
是分布式
的、高可用
的、 可横向扩展
的用于实现分布式系统的服务发现与配置。
Consul具有哪些特点?
服务发现(Service Discovery):Consul提供了通过DNS或者HTTP接口的方式来注册服务和发现服务。一些外部的服务通过Consul很容易的找到它所依赖的服务。
健康检查(Health Checking):Consul的Client可以提供任意数量的健康检查,既可以与给定的服务相关联(“webserver是否返回200 OK”),也可以与本地节点相关联(“内存利用率是否低于90%”)。操作员可以使用这些信息来监视集群的健康状况,服务发现组件可以使用这些信息将流量从不健康的主机路由出去。
Key/Value存储:应用程序可以根据自己的需要使用Consul提供的Key/Value存储。 Consul提供了简单易用的HTTP接口,结合其他工具可以实现动态配置、功能标记、领袖选举等等功能。
安全服务通信:Consul可以为服务生成和分发TLS证书,以建立相互的TLS连接。意图可用于定义允许哪些服务通信。服务分割可以很容易地进行管理,其目的是可以实时更改的,而不是使用复杂的网络拓扑和静态防火墙规则。
多数据中心:Consul支持开箱即用的多数据中心. 这意味着用户不需要担心需要建立额外的抽象层让业务扩展到多个区域。
安装步骤
1.下载并解压consul
# mkdir consul --创建consul目录
# chmod 777 consul
#cd consul
#wget https://releases.hashicorp.com/consul/1.3.0/consul_1.3.0_linux_amd64.zip
#unzip consul_1.3.0_linux_amd64.zip
# cp consul /usr/local/bin/ --拷贝到用户目录
2. 检查是否安装成功
# consul
# consul version
# consul agent -dev -ui -node=consul-dev -client=0.0.0.0 --client后面为服务器ip
或者#consul agent -data-dir /tmp/node0 -node=node0 -bind=0.0.0.0. -datacenter=dc1 -ui -client=0.0.0.0 -server -bootstrap-expect 1
3.浏览器输入:http://IP:8500/出现ConsulWeb界面就表示成功了
–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