SpringCloud搭建微服务之Consul服务配置

article/2024/4/13 13:38:04

1. 概述

前面有介绍过Consul既可以用于服务注册和发现,也可以用于服务配置,本文主要介绍如何使用Consul实现微服务的配置中心,有需要了解如何安装Consul的小伙伴,请查阅SpringCloud搭建微服务之Consul服务注册与发现
,这里就不再重复。

2. Consul Key/Value配置

进入Consul管理页面,选择Key/Value,进行Key/Value配置
key/value
点击Create,进入Key/Value创建页面,新建一个名为config的文件,并以/结尾
config
进入config文件,在其下根据环境创建对应的文件,例如:spring-cloud-consul-qua、spring-cloud-consul-val,并以/结尾
consul-val
创建应用文件如下:
应用文件
在应用文件目录下创建具体的data数据
创建数据
同理,在其他几个文件中添加配置数据

3. Spring Cloud集成Consul配置中心

3.1. 引入核心依赖

在pom.xml文件中引入consul配置依赖

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-consul-config</artifactId><exclusions><exclusion><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions>
</dependency>

3.2. 配置consul

新建bootstrp.yml配置文件,添加如下配置信息

spring:application:name: spring-cloud-consulprofiles:active: quacloud:consul:host: localhostport: 8500discovery:service-name: ${spring.application.name}config:profile-separator: '-'format: YAML

3.3. 验证

启动服务,查看控制台,可以看到微服务引用的指定的qua配置文件
验证consul配置
在服务中写一个测试接口,使用IDEA自带的HTTP测试接口,可以看到
测试请求

3.4. 动态刷新

如果在Consul配置中心修改了配置信息,微服务是不能及时更新的,需要在主启动类上添加注解@RefreshScope

@RefreshScope
@SpringBootApplication
@EnableDiscoveryClient
public class ConsulApplication {public static void main(String[] args) {SpringApplication.run(ConsulApplication.class, args);}
}

4. Consul数据持久化

4.1. 问题

如果Consul应用重启了,配置中心的数据会丢失,服务会拿取不到之前的数据,刷新Consul页面会报404错误,如下图:
404错误

4.2. 持久化配置

本文是本地文件保存方式实现数据持久化,在consul安装目录下,新建consul_data文件夹和consul_start.bat文件,在consul_start.bat文件中填写如下内容:

@echo.Consul服务正在启动......
@echo off
@sc create Consul binpath="D:\software\consul_1.18.0_windows_amd64\consul.exe agent -server -ui -bind=127.0.0.1 -client=0.0.0.0 -bootstrap-expect 1 -data-dir D:\software\consul_1.18.0_windows_amd64\consul_data"
@net start Consul
@sc config Consul start=AUTO
@echo.Consul start is OK ...... Success
@pause

使用管理员权限打开consul_start.bat文件
启动consul
服务启动后重新配置数据,打开任务管理器,可以看到Consul服务进程
consul进程
再次重启Consul服务时,配置的数据还在,consul_data文件夹中也有一些文件


http://www.ngui.cc/article/show-1927718.html

相关文章

vue3中实现elementPlus表格选中行的上移下移

先看效果&#xff1a; 实现步骤&#xff1a; 1、给el-table添加current-change事件、高亮属性及ref属性 2、给上移下移按钮添加事件 // 定义当前选中的行参数 const currentRow ref<any>(null); // 定义表格的ref const singleTableRef ref(); // 行选中事件 const ha…

【三维重建】【SLAM】SplaTAM:基于3D高斯的密集RGB-D SLAM

题目&#xff1a;SplaTAM: Splat, Track & Map 3D Gaussians for Dense RGB-D SLAM 地址&#xff1a;spla-tam.github.io 机构&#xff1a;CMU&#xff08;卡内基梅隆大学&#xff09;、MIT&#xff08;美国麻省理工&#xff09; 总结&#xff1a;SplaTAM&#xff0c;一个新…

three 层级模型

group.remove(mesh1,mesh2);Vector3与模型位置、缩放属性 Group层级模型(树结构) 创建了两个网格模型mesh1、mesh2&#xff0c;通过THREE.Group类创建一个组对象group,然后通过add方法把网格模型mesh1、mesh2作为设置为组对象group的子对象&#xff0c;然后在通过执行scene.a…

详解UDP/TCP套接字

详解UDP/TCP套接字 预备知识 理解源IP地址和目的IP地址 在IP数据包头部中, 有两个IP地址, 分别叫做源IP地址, 和目的IP地址 源IP地址&#xff1a;发送主机的IP地址。目的IP地址&#xff1a;接收主机的IP地址。 认识端口号 端口号(port)是传输层协议的内容. 端口号是一个…

Python 操作数据结构队列 queue和 双端队列 deque

“”" 队列&#xff08;Queue&#xff09;和双端队列&#xff08;Deque, Double-ended Queue&#xff09;都是线性数据结构&#xff0c;但它们在操作上有所不同&#xff1a; 队列&#xff08;Queue&#xff09;&#xff1a; 队列遵循先进先出&#xff08;FIFO, First-In…

地图可视化绘制 | R-cartography 艺术地图绘制

本期推文我们介绍一个可以绘制颇具“艺术”风格地图的可视化包-cartography&#xff0c;主要涉及的内容如下&#xff1a; R-cartography 简介 R-cartography 实例应用 所有完整代码都已整理之我们的线上课程&#xff0c;有需要的同学v yidianshuyulove 咨询 R-cartography …

qt 基于百度API的人脸识别

百度云官网&#xff1a;点击跳转 一、创建应用 跳转进去&#xff0c;可以看到以下界面&#xff1a; 点击红色圈内的“去创建”&#xff0c;创建自己的项目。可以看到以下界面&#xff1a; 输入“应用名称”&#xff0c;并勾选“人脸对比”&#xff0c;还要到页面的最后输入“应…

能源管理师的工作内容

能源管理师是从事能源利用(应用、消费)的计量、统计、评估、监督、监测、审计规划、设计以及能源利用设备的使用、运行、维护、应用管理等有关节能管理与应用的职业岗位的人员。 能源管理师包括能源管理者和能源管理员。能源管理师是各用能单位节能工作的贯彻者与执行者&#x…

代码随想录算法训练营第47天| 198.打家劫舍、213.打家劫舍II、337.打家劫舍III

198.打家劫舍 完成 思路&#xff1a; 本题中&#xff0c;偷与不偷一个房间&#xff0c;与前两个房间的状态是相关的&#xff0c;可以用动态规划解题。 dp[i]代表能从0-i房间偷取的最大金额。 对于每个房间而言&#xff0c;都有偷和不偷两种选择。如果偷这个房间&#xff0c;…

国产芯片方案:充气泵方案SIC8833C芯片

车载手持充气泵是一个用在汽车、摩托车、电动车车胎打气&#xff0c;也常用于充气篮球、足球等球类补气用。在很多时候都是作为车载设备使用&#xff0c;通常用于车胎气压不够&#xff0c;爆胎修理补气使用&#xff0c;这种手持的充气泵&#xff0c;体积小&#xff0c;携带方便…