Spring Cloud实战之初级入门(五)— 配置中心服务化与配置实时刷新

1.环境介绍

这一篇文章中我们终于没有新工程要建了,主要是对现有的工程进行改造。在传统的开发中,我们可能会把用户、机构、资源、权限这些比较通用的东西抽取出来做一个底层平台,但是在spring cloud的世界里,所有的都是服务;所有的服务都可以集群部署。

2.配置中心服务化

2.1 改造mirco-service-spring-config

因为我们之前在git上上传的配置目录也叫mirco-service-config,所以我把之前的配置中心工程改为了mirco-service-spring-config。

  • 为“mirco-service-spring-config”工程的pom文件中加入
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
		</dependency>
  • 配置文件中加入
eureka:
  client:
    service-url:
      defaultZone: http://localhost:9001/eureka/
  • 为启动文件加入@EnableDiscoveryClient注解

2.2 改造mirco-service-provider、mirco-service-consumer

主要是配置文件的改动,改动后的bootstrap.yml配置文件如下

spring:
  cloud:
    config:
      discovery:
        service-id: service-config-server #新加入的配置
        enabled: true  #打开配置文件从注册中心获取
      #uri: http://localhost:7001/
      profile: test
      name: provider
      label: master
       
eureka:
  client:
    service-url:
      defaultZone: http://localhost:9001/eureka/

因为这里面要从注册中心找到配置中心,再从配置中心找配置文件,而bootstrap.yml文件启动的时间比较早,所以这里一定要加入注册中心的地址。用同样的方法改造mirco-service-consumer。至此,改造完成。

3. 配置中心实时刷新

我们这里面以mirco-service-consumer为例。

3.1 加入依赖

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>

这里的actuator之前在第一章的视频里面讲过,这是一个用来做应用健康检查的组件,同时也可以做应用配置的刷新。

3.2 加入配置

  1. 为了方便演示,我们就直接在bootstrap.yml文件中加入如下配置:
management:
  endpoints:
    web:
      exposure:
        include: "*"

这个配置的意思是放开actuator相关的目录限制,没放开之前http://localhost:8002/actuator/env是看不到东西的,能看出说明配置成功。
2. 在MyFristConsumerController上加入@RefreshScope注解,只要类上加了@RefreshScope注解,并且类中有配置文件相关的变量,在应用配置刷新时,都会被更新。

3.3 测试

  • 访问http://localhost:8002/consumerHelloWorld?name=rose,看到我们的port是8002。
  • 修改github上的consumer.yml,将port改为8003。
  • 使用"curl -X POST http://localhost:8002/actuator/refresh"刷新配置。
  • 重复第一个步骤,可以看到port变为8003。
  • 由于我们这里改的是应用服务的端口,而我们刷新后,在应用中的参数配置确实变了,但访问端口还是8002,说明这个刷新配置也是有局限的,已启动的应用实际访问端口不会变。但下次启动时会变。

4.一点点重要的事情

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

隔壁老易

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值