查看原文
其他

Spring Boot 配置 - Consul 配置中心

SpringForAll社区 SpringForAll社区 2021-05-26


点击上方☝SpringForAll社区 轻松关注!
及时获取有趣有料的技术文章


img

▶ Spring Boot 依赖与配置

Maven 依赖

1<dependencyManagement>
2        <dependencies>
3            <dependency>
4                <groupId>org.springframework.cloud</groupId>
5                <artifactId>spring-cloud-dependencies</artifactId>
6                <version>Greenwich.RELEASE</version>
7                <type>pom</type>
8                <scope>import</scope>
9            </dependency>
10        </dependencies>
11    </dependencyManagement>
12
13    <dependencies>
14
15        .....
16
17        <dependency>
18            <groupId>org.springframework.cloud</groupId>
19            <artifactId>spring-cloud-starter-consul-config</artifactId>
20        </dependency>
21
22    </dependencies>

▶ 使用说明

1、部署 Consul

  • 参考文档:上一篇

2、在 resources 路径下添加配置文件 bootstrap.properties,示例如下:

1# consul 基本配置
2spring.cloud.consul.host=127.0.0.1
3spring.cloud.consul.port=8500
4
5# 启用 consul 配置中心
6spring.cloud.consul.config.enabled=true
7
8# 基础文件夹,默认值 config
9spring.cloud.consul.config.prefix=config
10
11# 应用文件夹,默认值 application,consul 会加载 config/<applicationName> 和 config/<defaultContext> 两份配置,设置为相同值,则只加载一份
12spring.cloud.consul.config.default-context=testApp
13spring.application.name=testApp
14
15# 环境分隔符,默认值 ","
16spring.cloud.consul.config.profile-separator=-
17
18# 配置转码方式,默认 key-value,其他可选:yaml/files/properties
19spring.cloud.consul.config.format=properties
20
21# 配置 key 值,value 对应整个配置文件
22spring.cloud.consul.config.data-key=data
23
24# 启用配置自动刷新
25spring.cloud.consul.config.watch.enabled=true
26
27# 【疑问】请求 consul api 的延迟,单位:秒
28spring.cloud.consul.config.watch.wait-time=1
29
30# 刷新频率,单位:毫秒
31spring.cloud.consul.config.watch.delay=10000

3、在 Consul Key/Value 中添加应用配置

配置项 spring.cloud.consul.config.prefix 指定了基本文件夹为 config,需要先创建文件夹 config

img

Tips:新建分两种类型:文件夹、Key/Value,创建文件夹只需在后面加上 "/" 即可

配置项 spring.cloud.consul.config.default-context 和 spring.cloud.consul.config.profile-separator 指定了应用名和环境分隔符,例如应用 testApp 有环境 defaultdevprod,只需在 config 目录下创建 testApptestApp-devtestApp-prod 三个文件夹即可:

img

配置项 spring.cloud.consul.config.format 指定了 Value 的转化方式,依据个人喜好,可以配置为 yaml 或 properties,若选择这两种方式,需要配置 spring.cloud.consul.config.data-key,默认为 data,示例配置:

img

Tips:如需单独配置每个 Key/Value,spring.cloud.consul.config.format 和 spring.cloud.consul.config.data-key 均不用设置

4、配置刷新

spring.cloud.consul.config.watch.delay 设置了配置的刷新间隔,在 Consul 修改了配置,会动态同步到应用内部。

▶ Github Demo URL

  • https://github.com/ChinaSilence/spring-boot-demos/tree/master/05%20-%20config%20with%20consul

▶ 相关文档

  • Spring Cloud Consul Config



天天玩微信,Spring Boot 开发私有即时通信系统了解一下

SpringBoot正确打日志的姿势

● Spring Boot 定制 parent 快速构建应用

● Spring Boot 容器化部署 - Docker

● SpringBot中教你手把手配置 https

● Spring Boot 日志处理你还在用Logback?

● 【双11狂欢的背后】微服务注册中心如何承载大型系统的千万级访问?

● Spring Boot 新一代监控你该这么玩

● Spring Boot 异常处理

● Spring Boot 配置 - 配置信息加密

● 拒绝黑盒应用-Spring Boot 应用可视化监控

● 并发Bug之源有三,请睁大眼睛看清它们




如有收获,请帮忙转发,您的鼓励是作者最大的动力,谢谢!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存