Consul简介

Consul是由HashiCorp基于Go语言开发的支持多数据中心的分布式高可用服务发布和注册软件, 采用Raft算法保持服务的一致性, 且支持健康检查,Consul和Eureka的侵入式服务中心不同的是, Consul是以独立的软件形式运行, 对项目侵入性小, 更方便部署。

Consul是微服务架构中,解决服务发现、配置中心的分布式中间件。

Consul特性

  • 服务发现:解决在分布式环境中,如何找到可用的服务地址的问题,支持通过DNS和HTTP查询服务地址。
  • 健康检查:定时监控服务是否正常,对于异常的服务会主动下线。
  • 键值存储:配置中心解决方案,是一种key/value存储结构,区别就是key是以目录树结构形式组织的,可以用来存储系统配置信息。
  • 多数据中心:支持多数据中心部署。

Consul架构

consul是分布式、高可用的系统,下图是单数据中心的部署架构。

说明:

consul主要有server和client两种组件组成。

  • server负责核心数据的存储和处理请求,server可以部署多个实例(通常推荐3-5个),server只有一个实例是leader实例,就是主节点,主节点是自动选举产生的,主节点负责处理数据的写入处理,同时将数据同步至其他server节点。

  • client负责跟server通信,处理转发服务注册、服务发现请求到server节点,client还负责服务的健康检查,client节点也可以部署多个实例,甚至每个微服务节点都部署一个client实例。

作者:Jeebiz  创建时间:2025-04-12 14:44
最后编辑:Jeebiz  更新时间:2025-04-13 16:32