目录
一.consul概述
consul简介
- consul是HashCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案相比,consul的方案是“一站式”,内置了服务注册与发现框架、分布式一致性协议实现、健康检查、K-V存储、多数据中心方案,不需要依赖其他工具(比如ZooKeeper等)。
- consul使用go语言编写,因此具有天然的可移植性(支持Linux、windows和Mac OS X等系统);安装包仅仅包含一个二进制的可执行文件,方便部署,与Docker等轻量级容器可以无缝连接。
- 官网地址: https://www.consul.io/downloads.html
注:详细介绍参考官方文档
consul特性
- 基础特性:服务注册与发现、数据强一致性保证、多数据中心、健康检查、Key/Value存储
- 高级特性:HTTP API、ACL(对后端服务的访问控制权限可以设置)
consul工作模式
- consul的架构如下:
- consul中包括3中不同的角色:client、server、server-leader,其实还有一个agent图中没有标识
- Client(客户端)
转发所有的请求给server
无状态,不持久化数据
参与LAN Gossip的健康检查
- server(服务器)
持久化数据
转发请求给server-Leader
参数Server-Leader选举
通过WAN Gossip(流算法协议,Gassndra和比特币的底层算法一样,符合弱一致性),与其他的数据中心交换数据
- Server-leader
响应RPC的请求
将服务列表数据同步给server
- Agent
agent是一个守护线程
跟随consul应用启动而启动
负责检查、维护节点同步
二.consul集群部署
实验环境
- 实验设备部署
角色 | IP地址 | 需要安装的软件 |
consul、server-leader | 192.168.43.101/24 |
docker-ce、consul |
docker容器服务(nginx) | 192.168.43.102/24 | docker-ce、registrator |
具体部署步骤
- 在两台pc上安装docker-ce
##安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
##设置docker源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
##安装docker
yum install -y docker-ce
##关闭安全性功能
systemctl stop firewalld
setenforce 0
##开启docker服务
systemctl start docker.service
systemctl enable docker.service
##加速镜像
tee /etc/docker/daemon.json <<