Spring Cloud Consul

1. Consul 介绍

服务注册/服务发现,除了Nacos还有一个比较流行的组件,Consul

主要用于服务发现/配置管理和分布式系统的健康检查

  • 服务注册/发现:服务在启动时项Consul注册,并在需要时,向Consul查询其他服务的地址和状态
  • 健康检查:consul提供了健康检查机制,确保只有健康的服务实例对外提供服务,防止服务转发到故障的服务
  • 配置管理:Consul提供了一个key/value存储系统,用于存储配置数据和其他需要共享的信息
  • 服务分段:Consul支持服务分段,允许创建隔离的环境

Consul和Nacos的区别

2. Consul安装

启动

.\consul.exe agent -dev

3. 服务注册/服务发现

引入依赖

Consul ⽀持健康检查,以确保只有健康的服务实例可被发现,Consul使⽤了actuator提供服务的健康检 查,所以除了consul之外,还需要引⼊actuator的依赖

添加配置

添加注解

4. 配置服务和刷新

Consul除了服务注册和发现之外,还可以作为配置中心,服务的配置信息存储在Consul中,服务从Consul获取配置信息

Consul提供了一个简直存储服务配置和其他元数据,是Spring Cloud Config的替代方案,在特殊的"bootstrap"阶段,配置加载到Spring环境中,默认情况i下,配置存储在/config文件中

4.1 初始化配置

如果项目由很多个环境,config目录下可以创建对应的多环境目录

  • config/product-service/:对应使用 config 前缀的、名称为 product-service 的应用。也就是说,当某个服务的 spring.application.name 为 product-service 时,Consul 会默认从 config/product-service/ 这个路径下读取它的配置信息。
  • config/product-service,dev/:对应 product-service 应用在 dev(开发)环境下的配置目录。当服务启动时指定了 dev 环境,Consul 会优先从该目录加载开发环境专属的配置,例如数据库连接地址、调试开关等。
  • config/product-service,prod/:对应 product-service 应用在 prod(生产)环境下的配置目录。生产环境通常包含更严格的参数,如连接池大小、超时时间、日志级别等,这些配置与开发环境相互隔离,避免误用。

4.2 项目配置

引入依赖

配置 bootstrap

4.5 动态刷新

Consul的动态刷新功能使得配置变更⽆需重启应⽤程序,⼤⼤提⾼了运维效率和系统的灵活性

4.6 其他配置

config/application配置

默认情况下,配置的路径前缀是/config,不同的aopplicayion和profile对应不同的配置路径

复制代码
config/product-service,dev/
config/product-service/
config/application,dev/
config/application/

这个列表从上倒下分别对应的配置优先级从高到低,优先级高的配置项会覆盖低优先级同样配置项

bootstrap.yml的更多配置

5. Consul 配置持久化

当重启Consul后,存储的数据会消失,与启动命令有关

consul agent options

可以指定数据存储目录

consul agent -server -bootstrap-expect 1 -ui -data dir=D:\soft\consul_data\mydata

相关推荐
netyeaxi5 天前
Consul:Consul中index介绍
consul
Rain的Java大神之路6 天前
如何快速上传10G文件
java·spring boot·redis·后端·mysql·spring cloud·面试
需要8266 天前
MySQL 索引 B+ 树与“查询为什么变慢了
java·spring boot·spring·spring cloud·tomcat
需要8266 天前
Arthas 一个命令排查线上问题
java·jvm·spring·spring cloud
苏渡苇7 天前
Spring Insight 里如何把 Span 画成瀑布时间线
后端·spring·spring cloud·springboot·监控·apm
叶总没有会7 天前
Nacos—注册中心
spring cloud·微服务
苏渡苇8 天前
Spring Insight 里如何把 Span 收成一条链路
spring boot·spring·spring cloud·系统监控·apm
叶总没有会8 天前
微服务--分布式基础
java·spring·spring cloud·微服务
孙启超9 天前
【AI开发之Rust】第 7 课:错误处理 —— panic、Result 与 `?`
人工智能·分布式·后端·爬虫·spring cloud·架构·rust
行百里er10 天前
Spring Insight 里如何把 Span 收成一条链路
spring boot·spring cloud·监控