Consul 简介
Consul是HashiCorp公司推出的开源项目,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案相比,Consul称得上是“一站式”解决方案,因为它内置了服务注册与发现框架、分布一致性协议、运行状态检查、Key/Value存储、多数据中心等,不再需要依赖其他工具,使用起来也比较简单。consul 默认端口 8500。
Consul是用Go语言开发的,因此具有天然可移植性(支持Linux、Mac OSX、FreeBSD、Solaris和Windows);安装包仅包含一个可执行文件,方便部署,与Docker等轻量级容器可无缝配合。
要利用Consul实现服务的注册与发现,需要建立Consul Cluster。在Consul方案中,每个提供服务的节点上都要部署和运行Consul的agent,所有运行Consul agent节点的集合会构成Consul Cluster。
Consul agent有两种运行模式:Server和Client。这里的Server和Client只是在Consul集群层面的区分,与搭建在Cluster之上的应用服务无关。以Server模式运行的Consul agent节点用于维护Consul集群的状态。
Consul的特性
●Consul支持健康检查,允许存储键值对
●一致性协议采用Raft算法,用来保证服务的高可用
●成员管理和消息广播采用GOSSIP协议,支持ACL访问控制
查看consul群集状态
创建两个nginx容器, 测试自动发现功能 是否正常
可看到test-01 test-02两个映射端口
访问后端服务器192.168.188.133:83,可看到test01的nginx首页面
访问后端服务器192.168.188.133:84,可看到test02的nginx首页面
查看两个容器的日志,看到是宿主机客户端来访问的
3、consul 服务器部署template
创建nginx-template模板
#声明后端服务器池,引用两个变量,分别加载后端服务器地址和容器映射的端口
#监听端口(代理端口,提供给客户端的),指向自己本地地址,日志文件所在位置,首页类型
启动nginx
通过代理IP和端口192.168.188.132:100,可访问nginx首页,多刷新几次
容器会在registrator 注册
5、consul服务端
配置文件已更新,可看到配置文件里又多了一个test03容器IP和端口
consul就做到了对容器的监控,自动发现和更新容器状态

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!