微服务之Consul注册中心
概述
Consul是一个分布式、高可用的扩展的用于服务发现和配置的工具
特性
- 服务发现
使用Consul可以更加简单的通过DNS或者HTTP方式来进行服务的注册和发现,外部的服务也可以进行注册。 - 健康检查
使用Consul的健康检查可以确认集中服务的状态信息,这项功能的集成有助于更好地进行路由分发等操作。 - Key/Value存储
可以通过简单的HTTP API进行Key/Value的使用,使得动态配置、特性标记、Leader选举等变得更加灵活。 - 多数据中心
Consul内建支持多数据中心,可以不需要复杂的配置就可以实现任意数量区域的支持。 - 服务网格
应用可以在服务网格配置使用sidecar代理来建立TLS连接,而在使用中也可以做到对于连接的透明性和无意识。
概念
-
Consul的官网组织图如下所示
- CLIENT
CLIENT表示consul的client模式,就是客户端模式。是consul节点的一种模式,这种模式下,所有注册到当前节点的服务会被转发到SERVER,本身是不持久化这些信息。 - SERVER
SERVER表示consul的server模式,表明consul是个server,这种模式下,功能和CLIENT都一样,唯一不同的是,它会把所有的信息持久化到本地,这样遇到故障,信息是可以被保留的。 - SERVER-LEADER
是SERVER的老大,与SERVER不一样的是,它需要负责同步注册的信息给其它的SERVER,同时也要负责各个节点的健康检查。
安装
Docker中安装
-
拉取镜像
1
docker pull consul
-
宿主机创建文件夹
期望容器中的配置文件、数据、日志再容器异常关闭或主动删除后保留,则需要配置挂载
1
mkdir -p /data/consul/{conf,data}
-
启动启动 将Consul默认的8500端口映射到宿主机的8599端口
1
docker run --name consul -p 8500:8500 -v /data/consul/conf/:/consul/conf/ -v /data/consul/data/:/consul/data/ -d consul
Windows下的测试安装
-
下载consul.exe文件
-
启动
1
consul.exe agent --dev
-
浏览器打开127.0.0.1:8500,如下所示即为成功
Consul的服务注册
1 | using Consul; |