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.hqwc.cn/news/334398.html

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

相关文章

【算法Hot100系列】有效的数独

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

【Scala】——流程控制

1 if-else 分支控制 让程序有选择的的执行&#xff0c;分支控制有三种&#xff1a;单分支、双分支、多分支 1.1单分支 if (条件表达式) {执行代码块 }1.2 双分支 if (条件表达式) {执行代码块 1 } else {执行代码块 2 }1.3 多分支 if (条件表达式1) {执行代码块 1 } else …

【C/C++】轻量级跨平台 开源串口库 CSerialPort

文章目录 1、简介2、支持的平台3、已经支持的功能4、Linux下使用5、使用vcpkg安装CSerialPort6、交叉编译7、效果图8、基于CSerialPort的应用8.1、CommMaster通信大师8.2、CommLite串口调试器 1、简介 Qt 的QSerialPort 已经是跨平台的解决方案&#xff0c;但Qt开发后端需要 Q…

Java泛型:灵活多变的类型参数化工具

&#x1f451;专栏内容&#xff1a;Java⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;前路未远&#xff0c;步履不停 目录 一、泛型1、什么是泛型2、泛型的语法 二、泛型类的使用1、泛型类的语法2、泛型如何编译的2.1、擦除机制2.2、为什么不能实例化泛…

低代码开发平台在工业领域的应用场景

随着科技的不断发展&#xff0c;低代码开发平台在工业场景中的应用越来越广泛。低代码开发平台通过提供可视化的界面和预构建的模块&#xff0c;使得开发人员能够快速地构建应用程序&#xff0c;而不需要编写大量的代码。这种技术的应用&#xff0c;不仅可以提高开发效率&#…

7+单细胞+空转+实验验证,如何根据内容开展相关经验给你启发

导语 今天给同学们分享一篇生信文章“CD8 tissue-resident memory T cells induce oral lichen planus erosion via cytokine network”&#xff0c;这篇文章发表在Elife期刊上&#xff0c;影响因子为7.7。 结果解读&#xff1a; 单细胞RNA测序揭示了具有不同临床亚型的OLP的细…

oracle11范围表空间实例

1.表分区&#xff1a;范围分区&#xff0c;散列分区&#xff0c;列表分区&#xff0c;组合分区&#xff0c;inetrval分区 范围分区&#xff1a;商品零售表&#xff0c;按照销售日期所在的季度创建4个分区 --先建立表空间&#xff1a;临时表空间是不可以存放数据的&#xff0c;…

网络原理OSI

目录 一、应用层 1、功能 2、协议的分类 二、UDP原理&#xff08;传输层&#xff09; 1、协议端格式 2、格式解释 三、TCP原理&#xff08;传输层&#xff09; 1、协议端格式 2、长度 3、可靠传输 &#xff08;1&#xff09;确认应答 &#xff08;2&#xff09;超时…

Java方法用法及解析

在 Java 中&#xff0c;方法&#xff08;Method&#xff09;是用于执行特定任务的代码块。它是一个函数&#xff0c;用于封装一段可重复执行的代码&#xff0c;并可以被其他代码调用。方法定义了一系列操作的步骤&#xff0c;并提供了一种结构化和可复用的方式来组织和执行这些…

docker jenkins NB: JAVA_HOME should point to a JDK not a JRE

jenkins java编译错误&#xff1a; 3.5.4/conf/settings.xml The JAVA_HOME environment variable is not defined correctly This environment variable is needed to run this program NB: JAVA_HOME should point to a JDK not a JRE Build step ‘Invoke top-level Maven t…

【Qt打包】Qt打包生成可安装exe文件

第三方打包 gitee 项目地址&#xff1a;https://gitee.com/hudejie/universal-software-installation-package 纯净包备份&#xff08;v0.1&#xff09;&#xff1a;https://download.csdn.net/download/weixin_45863921/88720027 1 项目介绍 作者项目介绍&#xff1a; 基于NS…

球形体积雾

前言 本Blog的体积雾散射算法借鉴自Miles Macklin Simulation and computer graphics&#xff0c;如需原文参照&#xff0c;可转至链接。 球形体积雾 球形体积雾&#xff0c;即通过一个球体&#xff0c;配备一个雾效Shader&#xff0c;从而模拟出球状雾效。 主要包括&#…