新建一个工程config-consumer,通过分布式配置中心获取和使用配置信息。
pom.xml文件关键配置:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.7.RELEASE</version> <relativePath/> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Finchley.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
Controller类:
@RestController public class UserController { //此参数值来自于配置中心 @Value("${jdbc.username}") private String username; @GetMapping("/user/info") public String getUsername() { return username; } }
启动类:
@SpringBootApplication public class Main { public static void main(String[] args) { SpringApplication.run(Main.class, args); } }
application.properties文件的配置:
spring.application.name=config-consumer #此参数值从配置中心获取 server.port=${configcenter.port} #server.port=4321
bootstrap.properties文件的配置(单配置中心,直接通过URL地址获取配置):
bootstrap配置文件用来程序引导时执行,应用于更加早期配置信息读取,如可以用来配置application配置文件中使用到的参数等。
bootstrap配置文件优先于application配置文件加载。
在spring cloud config client中要用bootstrap配置文件来获取config server的配置信息。
#配置中心应用的URL地址 spring.cloud.config.uri=http://localhost:4001 #配置文件config-dev.properties的名称,对应 {name} 部分 spring.cloud.config.name=config #对应 {profile} 部分 spring.cloud.config.profile=dev eureka.instance.hostname=${spring.cloud.client.ip-address} eureka.instance.instance-id=${spring.cloud.client.ip-address}:${server.port} eureka.instance.prefer-ip-address=true eureka.client.service-url.defaultZone=http://root:123456@${eureka.instance.hostname}:7001/eureka/
高可用配置中心的bootstrap.properties文件配置:
将多个服务名相同的配置中心应用注册到注册中心即可提供配置中心的高可用。
#开启通过服务名来访问config-server spring.cloud.config.discovery.enabled=true #config-server的服务名 spring.cloud.config.discovery.service-id=config-center #配置文件config-dev.properties的名称,对应 {name} 部分 spring.cloud.config.name=config #对应 {profile} 部分 spring.cloud.config.profile=dev eureka.instance.hostname=${spring.cloud.client.ip-address} eureka.instance.instance-id=${spring.cloud.client.ip-address}:${server.port} eureka.instance.prefer-ip-address=true #注册中心 eureka.client.service-url.defaultZone=http://root:123456@${eureka.instance.hostname}:7001/eureka/
客户端启用配置刷新功能:
在需要获取最新配置信息的Bean类上添加 @RefreshScope 注解,开启refresh功能。以下是Controller类需要获取最新配置信息的用法:
@RestController @RefreshScope //开启配置中心的更新机制。接到SpringCloud配置中心配置刷新的时候,自动将新的配置更新到该类对应的字段中。 public class UserController { //此参数值来自于配置中心 @Value("${jdbc.username}") private String username; @GetMapping("/user/info") public String getUsername() { return username; } }
通过actuator/refresh节点端口来刷新带有@RefreshScope注解的bean类:
在pom.xml文件添加依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
在application.properties文件添加以下配置,导出refresh端点:
#默认只开启health、info两个节点 #management.endpoints.web.exposure.include=* management.endpoints.web.exposure.include=health,info,refresh
以POST方式触发 http://localhost:4321/actuator/refresh 节点,即可刷新带有@RefreshScope注解的bean类。
相关推荐
动态配置中心可以实现配置更新时无需重新部署应用程序和服务即可使相应的配置信息生效,这极大了增加了系统的运维能力。下面我将来和大家一起来了解下Nacos的动态配置的能力,看看Nacos是如何以简单、优雅、高效的...
Spring Cloud配置中心获取不到最新配置信息的问题
6.5 显示静态链路聚合配置和统计信息 22 7 配置动态链路聚合 23 7.1 创建动态聚合 23 7.2 删除动态链路聚合组 24 7.3 添加/删除动态链路聚合中的端口 24 7.4 激活/关闭动态链路聚合状态 25 7.5 显示动态链路聚合配置...
在非spring注解类中使用spring容器中的bean_普通类中使用yml配置文件中的配置信息,在大数据采集项目中用到的,已经测试过了
json 配置设计,系统表单控制,json配置信息设计。json 配置设计,系统表单控制,json配置信息设计。json 配置设计,系统表单控制,json配置信息设计。json 配置设计,系统表单控制,json配置信息设计。json 配置...
本文详细介绍了mysql配置内容,使用mysql时可以使用
radware的基本配置,满足初级使用配置radware的人所需要
这是一个可以查询电脑配置的bat,适合不知道自己电脑配置的人群,点击即可查看,如果害怕有毒可以把bat后缀改为txt查看源码! bat源码: dxdiag 完
VBS获取完整计算机配置信息,可添加域组策略,批量获取局域网计算机配置信息
批处理自动获取电脑配置信息,自动生成txt文件在C盘下。批处理自动获取电脑配置信息,自动生成txt文件在C盘下
1.11.3 配置ICMP响应报文使用的路径 1.12 配置LSP统计数据输出时间间隔 1.13 检测MPLS LSP 1.14 开启MPLS的Trap功能 1.15 MPLS显示和维护 1.15.1 重启LDP会话 1.15.2 显示MPLS运行状态 1.15.3 显示MPLS LDP运行状态...
鼠标双击,即可自动获取电脑硬件配置信息,以及登录的账户名信息。鼠标双击,即可自动获取电脑硬件配置信息,以及登录的账户名信息。
JBuilder数据库配置信息JBuilder数据库配置信息JBuilder数据库配置信息JBuilder数据库配置信息JBuilder数据库配置信息JBuilder数据库配置信息JBuilder数据库配置信息
cad2008安装,无法加载配置文件。上次任务中保存的某些配置信息可能无法恢复
生成 eclipse 插件 配置信息
1. #Exit返回上一级操作模式 2. #del flash:config.text删除配置文件(交换机及1700系列路由器) 3.... #show running-config 查看当前生效的配置信息 12. #show interface fastethernet 0/3查看F0/3端口信息 13. #
Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。把java项目的配置信息抽离出来
假如我们在写action属性名的时候忘写name属性了或着当我们写配置文件的是时候,配置文件容易报错,呈现灰色,也没有任何的提示。这是因为我们没有为eclipse设置自动提示功能。现在我们以strut2配置文件为例。
oracle配置文件信息
2.3.3 显示系统当前各模块的运行信息 27 第3章 网络连通性测试 28 3.1 网络连通性测试 28 3.1.1 ping 28 3.1.2 tracert 28 第4章 设备管理 30 4.1 设备管理简介 30 4.2 配置设备管理 30 4.2.1 设备管理配置任务 30 ...