搭建SpringCloud配置中心 Config Server

缺乏、安全感 2023-07-07 12:49 75阅读 0赞

项目地址: 链接:https://pan.baidu.com/s/1Mxo0ltvZbpz\_r8mCU-mSpw
提取码:3j4a

问题解答:

SpringCloud Config 分布式配置文件中心
1.为什么要使用分布式配置中心?
产生的背景:在微服务如果使用传统的方式管理配置文件,配置文件管理器非常复杂,如果生产环境配置文件,可能
需要发生改变的时候,重新打war包,重新读取配置信息在jvm内存中
2.什么是分布式配置中心?
在微服务当中使用同一个服务器管理所有服务配置文件信息,能够实现后台可管理,当服务器正在运行的时候,
如果配置文件需要发生改变,可以实现不需要重启服务器实时更改配置文件信息.
3.有哪些分布式配置中心框架? (推荐使用阿波罗和zk)
1.阿波罗携程写分布式配置中心,有图形界面可管理配置文件信息.配置文件信息存放在数据库里面.
2.SpringCloud Config没有后台可管理分布式配置中心,配置文件信息存放在版本控制器里面.
3.使用Zookeeper实现分布式配置中心,持久节点+事件通知
4.分布式配置中心需要哪些组件?
1.Web管理系统—后台可以使用图形界面管理配置文件SpringCloud Config没有图像化管理配置文件
2.存放分布式配置文件服务器(持久存储服务器)—使用版本控制器存放配置文件信息,使用git环境
3.ConfigServer缓存配置文件服务器(临时缓存存放)
4.ConfigClient 读取ConfigServer配置文件信息.

搭建分布式配置中心 SpringCloud Config
1.搭建git环境, 目的:持久化存储配置文件信息 采用码云
git环境上文件夹以项目进行区分
member_config会员服务配置文件
order_config订单服务配置文件
2.公司项目中环境是如何区分?
dev 开发环境
sit 测试环境
pre 预发布环境
prd 准生产环境
uat 验收环境
3.在Git环境上创建配置文件命名规范
会员服务—-服务名称—-member: 服务名称-环境.properties member-dev.properties
4.默认情况下不能及时的获取实时变更的配置文件信息
springcloud分布式配置中心,可以采用手动刷新或者自动刷新
手动刷新—需要人工调用接口,读取最新配置文件(监控中心) 人工调用/actuator/refresh进行刷新(post请求)
自动刷新—消息总线进行实时通知—-springbus

搭建步骤:

1.首先本地安装git (步骤链接如下),注册码云账号

步骤:https://blog.csdn.net/zhangshengqiang168/article/details/100561686

  1. 1.新建项目( [分布式配置文件][Link 1] config )
  2. 2.创建项目配置文件夹([memberconfig][])
  3. 3.创建配置文件([test-configClient-prd.properties][]和[test-configClient-sit.properties][test-configClient-prd.properties])
  4. (此处是配置不同环境的配置文件(测试和准生产))
  5. 4.配置文件中分别添加测试配置信息
  6. info=prd.zhang.com info=sit.zhang.com

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poYW5nc2hlbmdxaWFuZzE2OA_size_16_color_FFFFFF_t_70

源码地址 : 链接:https://pan.baidu.com/s/17-cFGA3fJFLF8gcnDZdWXg
提取码:1q9z 具体见解压说明文件

2.搭建分布式配置中心服务端 config-server

(此时Eureka注册中心已配置已启动,注册中心访问地址 http://localhost:8000/eureka 此处事前搭好)

  1. 1.pom.xml依赖
  2. <!--SpringBoot整合Eureka客户端组件-->
  3. <dependency>
  4. <groupId>org.springframework.cloud</groupId>
  5. <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
  6. </dependency>
  7. <!--SpringBoot整合config-server-->
  8. <dependency>
  9. <groupId>org.springframework.cloud</groupId>
  10. <artifactId>spring-cloud-config-server</artifactId>
  11. </dependency>

2.application.properties配置文件配置

  1. #服务端口
  2. server.port=8888
  3. #服务名称
  4. spring.application.name=config-server
  5. #eureka注册中心服务地址
  6. eureka.client.service-url.defaultZone=http://localhost:8000/eureka
  7. #config-server读取git环境地址 直接复制码云项目地址
  8. spring.cloud.config.server.git.uri=https://gitee.com/zsqzhang/config.git
  9. #码云账号密码(公开的话不用配置账号密码)
  10. spring.cloud.config.server.git.username=******
  11. spring.cloud.config.server.git.password=******
  12. #读取的分支环境(之前新建的项目文件夹名称)
  13. spring.cloud.config.server.git.search-paths=memberconfig
  14. #读取分支类型 注意看所处码云分支类型
  15. spring.cloud.config.label=master

3.新建启动类AppConfigServer

  1. @SpringBootApplication
  2. @EnableEurekaClient
  3. @EnableConfigServer //开启config server服务器端功能
  4. public class AppConfigServer {
  5. public static void main(String[] args) {
  6. SpringApplication.run(AppConfigServer.class, args);
  7. }
  8. }

4.启动config-server服务端项目 访问 : ip+端口/码云新建配置文件名称 (即可访问当配置文件信息) ,服务端搭建成功

访问 http://localhost:8888/test-configClient-sit.properties 此接口会根据码云修改,实时更新

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poYW5nc2hlbmdxaWFuZzE2OA_size_16_color_FFFFFF_t_70 1

3.搭建分布式配置中心客户端 config-client

1.添加pom.xml依赖

  1. <!--SpringBoot整合config-client-->
  2. <dependency>
  3. <groupId>org.springframework.cloud</groupId>
  4. <artifactId>spring-cloud-config-client</artifactId>
  5. </dependency>
  6. <!--actuator监控中心-->
  7. <dependency>
  8. <groupId>org.springframework.boot</groupId>
  9. <artifactId>spring-boot-starter-actuator</artifactId>
  10. </dependency>
  11. <!--SpringBoot整合Eureka客户端组件-->
  12. <dependency>
  13. <groupId>org.springframework.cloud</groupId>
  14. <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
  15. </dependency>
  16. <!--SpringBoot整合WEB组件-->
  17. <dependency>
  18. <groupId>org.springframework.boot</groupId>
  19. <artifactId>spring-boot-starter-web</artifactId>
  20. </dependency>

2.新建配置文件 bootstrap.properties

  1. #服务端口
  2. server.port=8882
  3. #服务名称 码云配置文件test-configClient-prd.properties 的项目名称 test-configClient
  4. spring.application.name=test-configClient
  5. #读取版本环境 码云配置文件test-configClient-prd.properties 的环境 prd
  6. spring.cloud.config.profile=prd
  7. #读取config-server环境 读取的配置中心名称
  8. spring.cloud.config.discovery.service-id=config-server
  9. #开启读取权限
  10. spring.cloud.config.discovery.enabled=true
  11. ##eureka注册中心服务地址
  12. eureka.client.service-url.defaultZone=http://localhost:8000/eureka
  13. #监控中心开启所有端点
  14. management.endpoints.web.exposure.include=*

3.添加测试类TestController

  1. @RestController
  2. @RefreshScope //刷新 RefreshScope用新的环境参数重新生成Bean
  3. public class TestController {
  4. @Value("${info}")
  5. private String info;
  6. @RequestMapping("/getinfo")
  7. public String getInfo(){
  8. return info;
  9. }
  10. }

4.添加启动类APPConfigClient

  1. @SpringBootApplication
  2. @EnableEurekaClient
  3. public class AppConfigClient {
  4. public static void main(String[] args) {
  5. SpringApplication.run(AppConfigClient.class,args);
  6. }
  7. }

5.启动项目 调用接口 http://localhost:8882/getinfo 访问到配置信息

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poYW5nc2hlbmdxaWFuZzE2OA_size_16_color_FFFFFF_t_70 2

6.修改码云配置文件test-configClient-prd.properties info的内容

7.使用postman调用监控接口,手动刷新配置,接口地址http://localhost:8882/actuator/refresh post请求watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poYW5nc2hlbmdxaWFuZzE2OA_size_16_color_FFFFFF_t_70 3

8.再次调用 http://localhost:8882/getinfo 访问到配置信息

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poYW5nc2hlbmdxaWFuZzE2OA_size_16_color_FFFFFF_t_70 4

发表评论

表情:
评论列表 (有 0 条评论,75人围观)

还没有评论,来说两句吧...

相关阅读