Spring Cloud Config 实现配置中心
Posted androidstarjack
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Cloud Config 实现配置中心相关的知识,希望对你有一定的参考价值。
点击上方蓝色“终端研发部”,选择“设为星标”
学最好的别人,做最好的我们
Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持。方便部署与运维。分客户端、服务端。
服务端也称分布式配置中心,是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息,加密/解密信息等访问接口。
客户端则是通过指定配置中心来管理应用资源,以及与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息。默认采用 git,并且可以通过 git 客户端工具来方便管理和访问配置内容。
优点:
集中管理配置文件
不同环境不同配置,动态化的配置更新
运行期间,不需要去服务器修改配置文件,服务会向配置中心获取自己的信息
配置信息改变时,不需要重启即可更新配置信息到服务
配置信息以 rest 接口暴露
往往在使用spring-cloud-config的地方,都是结合着eureka注册中
使用的。请看下面实例:
在github上增加配置文件,如下图所示:
一. 配置eureka server服务,并启动此服务。
1.在pom文件中引入eureka server相关的包
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId></dependency>
2.设置相关配置(bootstrap.yml和application.yml文件)
bootstrap.yml如下:
spring: application: name: hyl-eureka-center security: user: name: test # 用户名 password: 123456 # 密码 cloud: inetutils: ## 网卡设置 ignoredInterfaces: ## 忽略的网卡 - docker0 - veth.* - VM.* preferredNetworks: ## 优先的网段 - 192.168
application.yml如下所示:
server: port: 3000eureka: instance: hostname: eureka-center appname: 注册中心 client: registerWithEureka: false # 单点的时候设置为 false 禁止注册自身 fetchRegistry: false serviceUrl: defaultZone: http://test:123456@localhost:3000/eureka server: enableSelfPreservation: false evictionIntervalTimerInMs: 4000
3.启动类增加注解
@EnableEurekaServer@SpringBootApplicationpublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }}
4.启动服务后,访问3000端口,即可以访问到eureka的服务端界面。
二.配置spring cloud config的服务端
1.pom文件包引入:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency><!-- spring cloud config 服务端包 --><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId></dependency><!-- eureka client 端包 --><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>
2.配置文件的配置(application.yml)
server: port: 3012eureka: client: serviceUrl: register-with-eureka: true fetch-registry: true defaultZone: http://test:123456@localhost:3000/eureka/ instance: preferIpAddress: truespring: application: name: config-eureka-server cloud: config: server: git: uri: https://github.com/xxxxx/config-only-a-demo username: github 用户名 password: github 密码 default-label: master search-paths: config
3.config server启动类
@SpringBootApplication@EnableConfigServer@EnableEurekaClientpublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }}
4.启动config server应用,查看eureka上面注册的服务,此时config-eureka-server应用注册到eureka的注册中心上,截图如下:
三.config客户端配置
由于config服务端注册到eureka注册中心,所以config客户端直接使用eureka注册的config服务端的那么即可。
1.pom文件的包依赖导入
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId></dependency>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId></dependency>
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>
2.配置文件的配置(bootstrap.yml和application.yml)
bootstrap.yml文件如下:
eureka: client: serviceUrl: register-with-eureka: true fetch-registry: true defaultZone: http://test:123456@localhost:3000/eureka/ instance: preferIpAddress: true
spring: profiles: active: dev
---spring: profiles: prod application: name: config-eureka-client cloud: config: label: master profile: prod discovery: enabled: true service-id: config-eureka-server
---spring: profiles: dev application: name: config-eureka-client cloud: config: label: master #指定仓库分支 profile: dev #指定版本 本例中建立了dev 和 prod两个版本 discovery: enabled: true # 开启 service-id: config-eureka-server # 指定配置中心服务端的server-id
application.yml文件如下所示:
server: port: 3011management: endpoint: shutdown: enabled: false endpoints: web: exposure: include: "*"
data: env: NaN user: username: NaN password: NaN
3.创建启动类
@SpringBootApplication@EnableEurekaClientpublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }}
4.启动config客户端应用,即可读取git上的配置信息
最后可以借助git的客户端工具,编辑配置文件,进行刷新配置信息到客户端,需要在需要刷新配置的地方增加 @RefreshScope 注解即可。
BAT等大厂Java面试经验总结 想获取 Java大厂面试题学习资料扫下方二维码回复「BAT」就好了回复 【加群】获取github掘金交流群回复 【电子书】获取2020电子书教程回复 【C】获取全套C语言学习知识手册回复 【Java】获取java相关的视频教程和资料回复 【爬虫】获取SpringCloud相关多的学习资料回复 【Python】即可获得Python基础到进阶的学习教程回复 【idea破解】即可获得intellij idea相关的破解教程回复 【BAT】即可获得intellij idea相关的破解教程关注我gitHub掘金,每天发掘一篇好项目,学习技术不迷路!
回复 【idea激活】即可获得idea的激活方式
回复 【Java】获取java相关的视频教程和资料
回复 【SpringCloud】获取SpringCloud相关多的学习资料
回复 【python】获取全套0基础Python知识手册
回复 【2020】获取2020java相关面试题教程
回复 【加群】即可加入终端研发部相关的技术交流群
阅读更多
在华为鸿蒙 OS 上尝鲜,我的第一个“hello world”,起飞!
相信自己,没有做不到的,只有想不到的
在这里获得的不仅仅是技术!
喜欢就给个“在看”
以上是关于Spring Cloud Config 实现配置中心的主要内容,如果未能解决你的问题,请参考以下文章
Spring CloudSpring Cloud Config 实现分布式配置中心