SpringCloud笔记(Dalston)——分布式配置中心
创始人
2025-06-01 05:09:24
0

配置中心:SpringCloud Config

  • 应用服务除了实现系统功能,还需要连接资源和其他应用,经常有很多需要在外部配置的数据用于调整应用的行为,如切换不同的数据库,设置功能开关等。
  • 随着微服务数量的不断增加,需要系统具备可伸缩和可扩展性,除此之外就是能够管理相当多的服务实例的配置数据。
  • 在应用的开发阶段,配置信息由各个服务自治管理 ,但是到了生产环境之后会给运维带来很大的麻烦,特别是微服务的规模比较大,配置的更新更为麻烦 为此,系统需要建立一个统一的配置管理中心。

常见的配置中心的实现方法有:

  1. 硬编码,缺点是需要修改代码,风险大。
  2. 放在xml等配置文件中,和应用一起打包,缺点是更新需要重新打包和重启。
  3. 文件系统,缺点是依赖操作系统等。
  4. 读取系统的环境变量,缺点是有大量的配置需要人工设置到环境变量中,不便于管理,且依赖平台。
  5. 云端存储,缺点是与其他应用相耦合。

简介

SpringCloud中提供了分布式配置中Spring Cloud Config,为外部配置提供了客户端和服务器端的支持。基于Config服务器,就可以集中管理各种环境下的各种应用的配置信息。其中,将包括两个部分:配置服务器和配置客户端。Config Server即是配置服务器,为客户端提供其对应的配置信息,配置信息的来源为配置仓库,启动时需要拉取配置仓库的信息,储存到本地仓库中; Config Client客户端,只会在本 配置必要的信息,如指定获取配置的Config Server地址,启动时从配置服务器获取配置信息,并支持动态刷新配置仓库中的属性值。

创建Config Server

准备工作

创建一个spring-boot项目,取名为config-server,添加maven依赖。

添加依赖

org.springframework.bootspring-boot-starter-web

org.springframework.cloudspring-cloud-config-server

开启配置服务器

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

配置yml

server:port: 8500
spring:cloud:config:server:git:uri: https://github.com/fengfangithub/study-springcloud.gitsearch-paths: springcloud-configdefault-label: masterusername:password: 
  • spring.cloud.config.server.git.uri:配置git仓库地址
  • spring.cloud.config.server.git.searchPaths:配置仓库路径
  • spring.cloud.config.label:配置仓库的分支
  • spring.cloud.config.server.git.username:访问git仓库的用户名
  • spring.cloud.config.server.git.password:访问git仓库的用户密码

新增application-dev.properties文件

config.name=myconfig
config.age=18

启动并测试

Spring Cloud Config有它的一套访问规则,我们通过这套规则在浏览器上直接访问就可以。

/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
  • {profile} 就是配置文件的版本,我们的项目有开发版本、测试环境版本、生产环境版本,对应到配置文件上来就是以
  • {label} 表示 git 分支,默认是master分支,如果项目是以分支做区分也是可以的,那就可以通过不同的 label 来控制访问不同的配置文件了。
    在这里插入图片描述

创建Config Client

准备工作

创建一个spring-boot项目,取名为config-client,添加maven依赖。

添加依赖

org.springframework.bootspring-boot-starter-web

org.springframework.cloudspring-cloud-starter-config

bootstrap.yml配置

spring:application:name: config-clientcloud:config:uri: http://localhost:8500/ #配置服务地址label: masterprofile: dev

编写测试接口

@RestController
@RequestMapping("/api")
public class ConfigPrintController {@Value("config.name")private String name;@Value("config.age")private int age;@PostMapping("/printConfig")public String printConfig(){return "name:" + name + ",age:" + age;}
}

启动config-server和client

在这里插入图片描述

高可用的配置中心

准备工作

配置中心可以做成一个微服务,将其集群化,从而达到高可用。其中注册中心还是沿用前面的eureka-serve,修改config-server、config-client

新增依赖

org.springframework.cloudspring-cloud-starter-netflix-eureka-client

修改config-server

server:port: 8500
spring:application:name: config-servercloud:config:server:git:uri: https://github.com/fengfangithub/study-springcloud.gitsearch-paths: springcloud-configdefault-label:   masterusername: password: eureka:client:service-url:defaultZone: http://localhost:8761/eureka/instance:# 自定义服务名称信息instance-id: config-server:8500#访问路径可以显示Ip地址prefer-ip-address: true

修改config-client

和config-server一样配置到注册中心,这里不再重复。

spring:application:name: config-clientcloud:config:
#      uri: http://localhost:8500/ #配置服务地址label: masterprofile: devdiscovery:enabled: true #从配置中心读取文件service-id: config-server #配置中心的servieId,即服务名。eureka:client:service-url:defaultZone: http://localhost:8761/eureka/instance:# 自定义服务名称信息instance-id: config-client:8600#访问路径可以显示Ip地址prefer-ip-address: true

启动多个config-server

在这里插入图片描述

在这里插入图片描述

相关内容

热门资讯

十日谈·法治护航一带一路 | ... 我的法律职业生涯开始于2010年,那一年,我进入一家外国律所实习。在第一个七年里,我参与了许多跨境投...
瀚蓝环境将于6月27日召开股东... 金融界6月2日消息,瀚蓝环境发布公告,将于2025年6月27日召开第1次临时股东大会,网络投票同日进...
资讯┃蓝天彬律师参加瀛和刑辩论... 滥用管辖权链接点进行违法管辖,跨地区抓捕民营企业家以及员工,是当前民营经济保护的焦点问题和痛点问题。...
原创 国... 国际调解院公约的签署仪式于最近在充满活力的香港举行。国际调解院的总部设立在这座国际大都会,参与到这一...
英国商界人士:美国关税政策成为... 新华社伦敦6月2日电(记者郑博非)英国一些商界人士近日在全球英国2025年贸易展会上接受新华社记者采...
一女子立遗嘱给宠物狗留了十几万... 据广州日报报道,近日,广州一名52岁离异女子立遗嘱,划出10余万元留给4只宠物狗,相关报道引发热议。...
全球媒体聚焦|香格里拉对话会:... 为期三天的第22届香格里拉对话会6月1日闭幕。多家外媒认为,会议暴露出美国和欧洲在亚洲问题上的紧张关...
南京开放“以债换房”政策,可直... ⇧点蓝色字关注“互联网联合辟谣平台” 近日,有“南京二手房零首付李经理”“合肥瑶珺房地产代理有限公司...
一公司骗享约61万,被罚885... 近日,国家税务总局重庆市税务局公布两起骗享税费优惠政策典型案件,分别是重庆百子讯科技有限公司违规享受...