Spring Cloud Consul

一、Consul介绍

Consul概述:

Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,Consul 的方案更"一站式",内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value 存储、多数据中心方案,不再需要依赖其他工具(比如 ZooKeeper 等)。使用起来也较 为简单。Consul 使用 Go 语言编写,因此具有天然可移植性(支持Linux、windows和Mac OS X);安装包仅包含一个可执行文件,方便部署,与 Docker 等轻量级容器可无缝配合。

复制代码
 Spring Cloud Consul 项目是针对 Consul 的服务治理实现。Consul 是一个分布式高可用的系统,它包含多个组件,但是作为一个整体,在微服务架构中,为我们的基础设施提供服务发现和服务配置的工具。

Consul功能:

Consul角色:

Server :服务端,保存配置信息,高可用集群,在局域网与本地客户端通讯,通过广域网与其他数据中心通讯,每个数据中心的Server数量推荐3个或者5个。
Client:客户端,无状态,将HTTP和DNS接口请求转发给局域网内的服务端集群。

Consul优势:

使用 Raft 算法来保证一致性, Consul 保持了 CAP 中的 CP,保持了强一致性和分区容错性。

支持多数据中心。

支持健康检查。

使用go语言开发,启动速度和运行速度快。

二、Consul的安装和使用

打开Consul官网 https://developer.hashicorp.com/consul 根据不同的操作系统选择最新的 Consul 版本。我们以 Windows 64 操作系统为例。

下载下来是一个压缩包,解压是一个 consul.exe 的执行文件。

cd 到对应的目录下,使用 cmd 启动 Consul。

bash 复制代码
--常规启动
consul agent -dev 

启动成功之后访问:localhost:8500,就可以看到Consul的管理界面。

Consul 管理界面菜单介绍

Consul 的 Web 管理界面有一些菜单,我们做一下介绍:

Services,管理界面的默认页面,用来展示注册到 Consul 的服务,启动后默认会有一个 consul 服务,也就是它本身。

Nodes,在 Services 界面双击服务名就会来到 Services 对于的 Nodes 界面,Services 是按照服务的抽象来展示的,Nodes 展示的是此服务的具体节点信息。比如启动了两个订单服务实例,Services 界面会出现一个订单服务,Nodes 界面会展示两个订单服务的节点。

Key/Value ,如果有用到 Key/Value 存储,可以在界面进行配置、查询。

ACL,全称 Access Control List,为访问控制列表的展示信息。

Intentions,可以在页面配置请求权限。

三、Consul的调用过程

Consul的调用过程:

1、当 Producer 启动的时候,会向 Consul 发送一个 post 请求,告诉 Consul 自己的 IP 和 Port;

2、Consul 接收到 Producer 的注册后,每隔 10s(默认)会向 Producer 发送一个健康检查的请求,检验 Producer 是否健康;

3、当 Consumer 发送 GET 方式请求 /api/address 到 Producer 时,会先从 Consul 中拿到一个存储服务 IP 和 Port 的临时表,从表中拿到 Producer 的 IP 和 Port 后再发送 GET 方式请求 /api/address;

4、该临时表每隔 10s 会更新,只包含有通过了健康检查的 Producer。

相关推荐
来福猿9 小时前
Nacos 源码解析:服务注册、配置中心与心跳续约机制
spring·spring cloud
Thomas.Sir10 小时前
第27课:SkyWalking全链路追踪实战 & 微服务调用链路分析
spring cloud·微服务·skywalking
野生技术架构师11 小时前
Dubbo 还是 Spring Cloud?从架构本质到落地选型
spring cloud·架构·dubbo
QYRdata11 小时前
人工智能物联网软件迎发展机遇 未来六年CAGR稳定在12.2%
人工智能·物联网·服务发现·恒州博智
Wang's Blog13 小时前
Java 项目实战: 交友项目 - 前后端分离的工程实践
java·spring cloud·架构
QYRdata1 天前
年复合增长率20.0%:Sim-to-Real机器人平台2026-2032年增长潜力引业界关注
机器人·服务发现·恒州博智
自强的小白1 天前
项目整个架构的构建和演进。(重点!)
spring cloud·微服务·架构
Thomas.Sir1 天前
第25课:Spring Cloud监控体系详解 & Actuator端点全解
spring cloud·actuator
今年下半年1 天前
【Spring Cloud】Spring Cloud Gateway 防 XSS / 防 CSRF 实现
spring cloud·xss·csrf
Wang's Blog1 天前
Java 项目实战: 交友项目 - SpringCloud 整合 Dubbo 的需求分析与模块规划
java·spring cloud·交友