springCould中的Config-从小白开始【10 】

目录

🌭1.spring cloud Config是什么😶‍🌫️😶‍🌫️😶‍🌫️

🥓2.能干什么😶‍🌫️😶‍🌫️😶‍🌫️

🍿3.服务端配置😶‍🌫️😶‍🌫️😶‍🌫️

🥞4.客户端配置😶‍🌫️😶‍🌫️😶‍🌫️

🍳5.动态刷新 😶‍🌫️😶‍🌫️😶‍🌫️


1.spring cloud Config是什么😶‍🌫️😶‍🌫️😶‍🌫️

SpringCloud Config为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环境提供了一个中心化的外部配置

2.能干什么😶‍🌫️😶‍🌫️😶‍🌫️

  • 分为服务端和客户端                 
  • 集中管理配置文件
  • 不同环境不同配置,动态化的配置更新,分环境部署比如dev/test/prod/beta/release
  • 运行期间动态调整配置,不再需要在每个服务部署的机器上编写配置文件,服务会向配置中心统一拉取配置自己的信息当
  • 配置发生变动时,服务不需要重启即可感知到配置的变化并应用新的配置
  • 将配置信息以REST接口的形式暴露

 

3.服务端配置😶‍🌫️😶‍🌫️😶‍🌫️

3.1.创建工程😶‍🌫️😶‍🌫️😶‍🌫️

  • 1.在父工程下创建
  • 2.注意jdk和maven版本号

3.2.添加pom😶‍🌫️😶‍🌫️😶‍🌫️

  • 1.springboot依赖
  • 2.通用依赖
  • 3.eureka依赖
  • 4.configcenter依赖
   <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.example</groupId><artifactId>cloud-api-commons</artifactId><version>${project.version}</version></dependency><!--eureka的Client端--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><!--configCenter--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-config-server</artifactId><!-- 不引入这个较旧的、没有维护的库,因为该版本不支持较新版本的RSA加密 --><exclusions><exclusion><groupId>com.jcraft</groupId><artifactId>jsch</artifactId></exclusion></exclusions></dependency><!--        该版本支持较新版本的RSA(sha2-256 / sha2-512) --><dependency><groupId>com.github.mwiede</groupId><artifactId>jsch</artifactId><version>0.2.0</version></dependency></dependencies>

3.3.修改yml😶‍🌫️😶‍🌫️😶‍🌫️

在配置文件之前,先配置好自己的gitee或github

server:port: 3344spring:application:name:  cloud-config-centercloud:config:server:git:#gitee上面的仓库地址uri: git@gitee.com:hqdmdxz/springcould-config.git#搜索目录search-paths:- sprongcloud-config#gitee的账号username: 账号#gitee的密码password: 密码#读取分支lable: master#注册到eureka
eureka:client:service-url:defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka,http://eureka7003.com:7003/eureka

3.4.主启动类😶‍🌫️😶‍🌫️😶‍🌫️

@EnableConfigServer:启用配置服务器

@SpringBootApplication
@EnableConfigServer
public class ConfigCenterMain3344 {public static void main(String[] args) {SpringApplication.run(ConfigCenterMain3344.class);}
}

3.5.配置类😶‍🌫️😶‍🌫️😶‍🌫️

因为spring-cloud-config-server还不支持github较新的rsa加密方法

@Configuration
public class MyConfig {//Shim to fix the way jGit configures JSchstatic {JSch.setConfig("signature.rsa", "com.jcraft.jsch.jce.SignatureRSA");}
}

3.6.测试😶‍🌫️😶‍🌫️😶‍🌫️

1.启动主启动类

2.在浏览器输入地址

4.客户端配置😶‍🌫️😶‍🌫️😶‍🌫️

4.1.创建工程😶‍🌫️😶‍🌫️😶‍🌫️

  • 1.在父工程下创建
  • 2.注意jdk和maven版本

4.2.添加pom😶‍🌫️😶‍🌫️😶‍🌫️

1.springbooty依赖

2.通用依赖

3.eureka依赖

4.config依赖

 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.example</groupId><artifactId>cloud-api-commons</artifactId><version>${project.version}</version></dependency><!--eureka的Client端--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><!--configClient--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-config</artifactId></dependency></dependencies>

4.3.修改yml😶‍🌫️😶‍🌫️😶‍🌫️

  • applicaiton.yml是用户级的资源配置项
  • bootstrap.yml是系统级的,优先级更加高
  • 要将Client模块下的application.yml文件改为bootstrap.ymll这是很关键的。

注:bootstrap.yml是比application.yml先加载的

       bootstrap.yml优先级高于application.yml

server:port: 3355
spring:application:name: config-clientcloud:#客户端配置config:#分支名称label: master#配置文件名称name: config#读取后缀名称profile: dev#配置中心地址uri: http://localhost:3344#服务注册到eureka
eureka:client:service-url:defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka,http://eureka7003.com:7003/eureka

4.4.主启动类😶‍🌫️😶‍🌫️😶‍🌫️

@SpringBootApplication
@EnableEurekaClient
public class ConfigClientMain3355 {public static void main(String[] args) {SpringApplication.run(ConfigClientMain3355.class);}
}

4.5测试😶‍🌫️😶‍🌫️😶‍🌫️

  • 1.启动主程序类
  • 2.浏览器访问

5.动态刷新 😶‍🌫️😶‍🌫️😶‍🌫️

问题:

  • 修改GitHub上的配置文件内容做调整
  • 刷新3344,发现ConfigServer配置中心立刻响应
  • 刷新3355,发现ConfigClient客户端没有任何响应
  • 3355没有变化除非自己重启或者重新加载

每次客户端都要重启????

5.1.修改3355模块😶‍🌫️😶‍🌫️😶‍🌫️

添加依赖

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>

5.2.修改yml😶‍🌫️😶‍🌫️😶‍🌫️

暴露监控端点


#暴露监控端点
management:endpoints:web:exposure:include: "*"

5.3.修改业务类 😶‍🌫️😶‍🌫️😶‍🌫️

在业务类上面添加@RefreshScope注解

@RestController
@RefreshScope
public class ConfigClientController {@Value("${config.info}")private String configInfo;@GetMapping("/configInfo")public String getConfigInfo(){return configInfo;}
}

5.4.发送POST刷新😶‍🌫️😶‍🌫️😶‍🌫️

在gitee上修改文件内容后,刷新浏览器发现还是不行???????

  • 在修改内容之后,手动刷新客户端
curl -X POST "http://localhost:3355/actuator/refresh"

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/608621.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SSH远程访问出现Permission denied(password)解决方法

首先&#xff0c;这个不是密码输错了的问题&#xff1b; 1、在主机先ping一下服务器 ping XXX.XXX.XX.XXX (服务器ip地址) 如果pin成功了&#xff0c;说明可以进行连接 查看服务器的ip ifconfig2、主机连接服务器 &#xff08;服务器的ip&#xff09; ssh testXXX.XXX.XX.…

mysql 删除查询语句所选出的数据 SQL查询,用于找出outbox表中memo1字段重复且dt字段不是最新日期的记录

编写一个SQL查询&#xff0c;用于找出outbox表中memo1字段重复且dt字段不是最新日期的记录 批量打印包装箱时&#xff0c;提示有重复N条的处理方法&#xff1a; –先备份数据库&#xff0c;删除不可逆。查出来&#xff0c;如果就是重复的N条&#xff0c;全选右键 删除 SELECT …

LeetCode-数组-双指针-中等难度

文章目录 双指针1. 删除有序数组中的重复项&#xff08;入门&#xff09;1.1 题目描述1.2 解题思路1.3 代码实现 2. 删除有序数组中的重复项 II&#xff08;简单&#xff09;2.1 题目描述2.2 解题思路2.3 代码实现 3. 移动零&#xff08;简单&#xff09;3.1 题目描述3.2 代码实…

Hive的时间处理函数from_unixtime和unix_timestamp

一、概述 hive时间处理函数from_unixtime和unix_timestamp的实现以及实例&#xff0c;从而方便后续的时间处理。 二、具体功能实现 1.unix_timestamp(date[, pattern])&#xff1a; 默认的时间格式是yyyy-MM-dd HH:mm:ss&#xff0c;如果日期不是这种格式无法识别&#xff…

【技术选型】clickhouse vs starRocks

比对结论 如果只能单机部署的话&#xff0c;clickhouse基本无敌。 如果集群化&#xff0c;starRocks可以替换clickhouse&#xff0c;但支持的函数会相对少一些&#xff08;clickhouse有不少自定义函数&#xff09; 信息比对 功能clickhousestarRocksjoin大表关联容易OOM对jo…

AQS应用之BlockingQueue详解

概要 AQS全称是 AbstractQueuedSynchronizer&#xff0c;中文译为抽象队列式同步器。BlockingQueue&#xff0c;是java.util.concurrent 包提供的用于解决并发生产者 - 消费者问题的最有用的类&#xff0c;它的特性是在任意时刻只有一个线程可以进行take或者put操作&#xff0…

MySQL之导入导出远程备份

目录 一. navicat导入导出 二. mysqldump命令导入导出 导入 导出 三. load data infile命令导入导出 导入 导出 四. 远程备份 导入 导出 思维导图 一. navicat导入导出 导入&#xff1a;右键➡运行SQL文件 导出&#xff1a;选中要导出的表➡右键➡转储SQL文件➡数据和结…

C# Emgu.CV4.8.0读取rtsp流录制mp4可分段保存

【官方框架地址】 https://github.com/emgucv/emgucv 【算法介绍】 EMGU CV&#xff08;Emgu Computer Vision&#xff09;是一个开源的、基于.NET框架的计算机视觉库&#xff0c;它提供了对OpenCV&#xff08;开源计算机视觉库&#xff09;的封装。EMGU CV使得在.NET应用程序…

x-cmd pkg | vhs - 将终端的操作过程录制成视频文件的终端录制工具

目录 简介首次用户声明式录制脚本其他功能竞品和相关作品进一步阅读 简介 vhs 是一个命令行录制工具&#xff0c;用于将终端的操作过程录制成视频文件。是由 Charmbracelet 团队使用 Go 开发的&#xff0c;首个版本发布于 2022 年 10 月。开源不到一个月有接近 8k 的 star。 …

Kubernetes (八) 金丝雀发布

一. 金丝雀发布作用&#xff1a; 金丝雀发布是指在生产环境中逐步推出新版本应用程序&#xff0c;只在一小部分用户或流量中使用该版本&#xff0c;并根据反馈逐步扩…

收到的字符串写入xml并且将这个xml写入.zip文件中

文章目录 1、将数据写入xml文件WriteToXmlFile2、将xml文件写入zip压缩文件AddToZip3、组合起来4、使用到的头文件和动态库 1、将数据写入xml文件WriteToXmlFile void CSMSLoginDlg::WriteToXmlFile(const std::string& responseData, const std::string& xmlFileName…

计算机为什么有趣?哪些地方有趣?为什么学习四则运算简单,学习微积分却很难?导数是微分吗?

计算机为什么有趣&#xff1f;哪些地方有趣&#xff1f; 计算机之所以有趣&#xff0c;主要是因为它们具有无限的可能性和创造力。这里有几个方面可以帮助你理解为什么计算机这么有趣&#xff1a; 解决问题的工具&#xff1a;想象一下&#xff0c;你有一个拼图&#xff0c;计算…

PostgreSQL 支持的字段类型

PostgreSQL 支持多种字段类型&#xff0c;以下是 PostgreSQL 13 版本中支持的所有字段类型&#xff1a; 数值类型&#xff1a; smallint&#xff1a;小整数类型。integer&#xff1a;整数类型。bigint&#xff1a;大整数类型。decimal&#xff1a;精确小数类型。numeric&#x…

Redis(三)持久化

文章目录 RDB&#xff08;Redis Database&#xff09;自动触发保存频率修改dump文件保存路径修改文件保存名称dump恢复 手动触发save![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a56fdff44aee4efa96c2ce3615b69dc1.png)bgsave 优劣优点缺点 检查修复dump文件会触…

手把手教你使用cubemx配置串口

重写fput函数 #include <stdio.h>#ifdef __GNUC__#define PUTCHAR_PROTOTYPE int _io_putchar(int ch)#else#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)#endif /* __GNUC__*//*******************************************************************brief R…

安全狗获评CCIA“2023年度先进会员单位”

1月4日&#xff0c;2023年度中国网络安全产业联盟会员大会暨理事会在北京成功举办。 作为国内云原生安全领导厂商&#xff0c;安全狗也受邀出席此次活动。 厦门服云信息科技有限公司&#xff08;品牌名&#xff1a;安全狗&#xff09;创办于2013年&#xff0c;是国内领先的云…

你的企业知识库该更新啦,这样搭建高效又轻松

很明显&#xff0c;企业知识库已经成为我们工作中必不可少的资源&#xff0c;它的价值已经不言而喻&#xff0c;无论是促进团队合作&#xff0c;还是帮助我们更有效地找到收集和使用知识&#xff0c;知识库都发挥着重要的作用&#xff0c;然而&#xff0c;你的企业知识库已经过…

springboot——消息中间件

消息的概念 从广义角度来说&#xff0c;消息其实就是信息&#xff0c;但是和信息又有所不同。信息通常被定义为一组数据&#xff0c;而消息除了具有数据的特征之外&#xff0c;还有消息的来源与接收的概念。通常发送消息的一方称为消息的生产者&#xff0c;接收消息的一方称为…

OV5640 摄像头的图像平滑处理

如图所示&#xff0c;这是整个视频采集系统的原理框图。 上电初始&#xff0c;FPGA 需要通过 IIC 接口对 CMOS Sensor 进行寄存器初始化配置。这些初始化的基本参数&#xff0c;即初始化地址对应的初始化数据都存储在一个预先配置好的 FPGA 片内 ROM中。在初始化配置完成后&…

遥感影像-语义分割数据集:云数据集详细介绍及训练样本处理流程

原始数据集详情 简介&#xff1a;该云数据集包括150张RGB三通道的高分辨率图像&#xff0c;在全球不同区域的分辨率从0.5米到15米不等。这些图像采集自谷歌Earth的五种主要土地覆盖类型&#xff0c;即水、植被、湿地、城市、冰雪和贫瘠土地。 KeyValue卫星类型谷歌Earth覆盖区…