spring-cloud 笔记

本文介绍了Spring Cloud的配置管理服务,包括基于文件系统和配置管理(如Git)的两种方式。通过配置管理服务,可以确保服务实例配置一致性,避免部署时的配置问题。详细讲解了配置服务的核心依赖、客户端配置及如何实现配置的动态刷新。
摘要由CSDN通过智能技术生成

spring-cloud之配置管理:


spring-cloud使用spring-cloud-config模块提供配置管理服务,可以使用两种方式:基于共享文件系统形式,基于配置管理形式。通过配置管理,将项目的配置文件统一到配置管理服务进行管理,所有的服务实例在启动时都需要从配置管理服务获得配置文件,进行服务实例的配置,通过提供统一的配置管理服务,根据profile确定具体的环境配置,可以保证各个实例的配置一致性,避免传统开发形式下,部署服务,进行配置常发生的错配,漏配等,避免因配置问题导致的各种难以排查的系统异常。防止了配置漂移的发生。

基于文件系统的配置管理

配置服务的核心依赖

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
</dependency>

application.yml的核心配置

server:
  port: 8888
spring:
  profiles:
    active: native
  cloud:
    config:
      server:
        native:
          searchLocations: file:///Users/username/CodingSpace/IdeaProject/cloud-project/config-service/src/main/resources/config/licensingservice

指定了配置服务的端口,默认生效的配置环境此处为本地文件系统方式,配置文件所处的系统路径。获得配置时,默认配置总会返回,然后根据具体环境配置,进行相应的属性值覆盖。

基于配置管理的配置服务,如Git

application.yml核心配置

server:
  port: 8888
spring:
  cloud:
    config:
      server:
        git: 
          uri: http://xxx.com.cn/xxx.git
          search-paths: licensingservice, userservice
          username: xxx
          password: xxx

配置服务启动类核心配置

@SpringBootApplication
@EnableConfigServer // 标记为spring cloud config 服务
public class ConfApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConfApplication.class, args);
    }
}

业务服务连接配置服务

配置服务客户端核心依赖

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-client</artifactId>
        </dependency>

bootstrap.yml核心配置

server:
  port: 8080
spring:
  application:
    name: licensingservice
    profiles:
      active: dev
    cloud:
      config:
        uri: http://localhost:8888

配置服务端口,应用名称此处与配置服务中文件的服务名称一致,读取配置的环境为dev,设置配置服务的访问的uri

服务启动时加载先加载bootstrap.yml文件,所有默认配置项都会被自动进行设置,其它自定义配置,需要在代码中手动进行配置

使用spring的

value()

进行配置注入

要使配置配置服务配置文件修改后可以被应用加载,可以使用refresh端点,先配置刷新注解

@SpringBootApplication()
@RefreshScope
public class LicensingServiceApplication {
}

在启动类增加注解,配置文件修改后可以调用http://ip:port/refresh 强制重新加载配置数据。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值