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相关面试题教程

回复 【加群】即可加入终端研发部相关的技术交流群

阅读更多

为什么HTTPS是安全的

因为BitMap,白白搭进去8台服务器...

《某厂内部SQL大全 》.PDF

字节跳动一面:i++ 是线程安全的吗?

大家好,欢迎加我微信,很高兴认识你!

在华为鸿蒙 OS 上尝鲜,我的第一个“hello world”,起飞!

相信自己,没有做不到的,只有想不到的

在这里获得的不仅仅是技术!


喜欢就给个“在看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值