Spring-cloud Config Server的3种配置方式

yizhihongxing

Spring Cloud Config Server提供了3种配置方式,具体如下:

1. 本地文件系统配置

本地文件系统配置是Spring Cloud Config Server默认采用的一种方式。通过设置spring.profiles.active=native,配置文件会从本地文件系统中读取,例如:

spring:
  profiles:
    active: native
  application:
    name: test-app
  cloud:
    config:
      server:
        native:
          searchLocations: file:///${user.home}/config-repo

这里指定了读取位置为file:///${user.home}/config-repo,即在用户的home目录下的config-repo文件夹内。

示例:

假设config-repo路径下存在名为test-app.properties的配置文件,其内容如下:

server.port=8080

此时,在应用启动时,Spring Cloud Config Server会将配置文件中的端口号设置为8080。

2. Git仓库配置

除本地文件系统配置外,Spring Cloud Config Server还提供了从Git仓库中获取配置的方式,并可选择使用Git附加密码来保护Git仓库的私有性。

spring:
  cloud:
    config:
      server:
        git:
          uri: https://github.com/spring-cloud-samples/config-repo # Git仓库地址
          search-paths: '{application}' # 读取Git仓库下的哪个目录中的配置文件
          username: myusername # Git账户名(可选)
          password: mypassword # Git账户密码(可选)

例如,在Git仓库中有一个名为test-app.properties的配置文件,其内容如下:

server.port=8080

此时,在应用启动时,Spring Cloud Config Server会将配置文件中的端口号设置为8080。

3. 配置中心消息总线配置

Spring Cloud Config Server还支持使用消息总线的方式,进行配置更新,使各服务在配置变化时自动更新。

使用消息总线更新配置时,需要在服务中增加spring-cloud-starter-bus-amqp依赖。同时,需要在application.properties中配置RabbitMQ消息队列的地址、账号密码等信息。

spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.username=username
spring.rabbitmq.password=password

在Spring Cloud Config Server的配置文件中增加spring.cloud.config.server.monitor.enable=true选项后,每次向配置中心更新配置文件时,Spring Cloud Config Server都会向消息总线发送POST请求,将更新消息广播出去。

例如,有多个服务连接到了配置中心,为了更新服务的配置,只需使用以下curl命令向Spring Cloud Config Server的/actuator/bus-refresh接口发起POST请求:

curl -X POST http://localhost:8080/actuator/bus-refresh

接着Spring Cloud Config Server会向消息总线发送刷新配置消息,各服务收到该消息后,即可在不重启的情况下更新已选中自己的配置文件。

总之,Spring Cloud Config Server可以灵活地根据需要选择不同的配置方式,方便配置中心的管理和维护。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring-cloud Config Server的3种配置方式 - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • Java中局部变量和成员变量的区别详解

    当涉及到Java中局部变量和成员变量的区别时,以下是一个完整的攻略,其中包含两个示例说明。 … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … 示例1:局部变量 p…

    other 2023年8月10日
    00
  • apache开源项目–Cassandra

    Apache开源项目——Cassandra 什么是Cassandra? Cassandra 是一个分布式、高度可扩展的 NoSQL 数据库系统,由 Facebook 开发并开源,后被 Apache 基金会接手管理。Cassandra 以其可扩展性,高性能和容错性而著名,是许多企业和组织中重要的数据存储解决方案。 Cassandra 的特点 分布式 Cassa…

    其他 2023年3月28日
    00
  • 初步学习Java中线程的实现与生命周期

    初步学习Java中线程的实现与生命周期攻略 什么是线程? 线程是程序执行的一个单元,也是进程内的一个独立控制流。 一个进程中可以有多个线程,它们共享内存空间和一些进程级的数据,但每个线程有自己的计数器、栈空间及局部变量。 线程的使用可以提高程序的效率。 常用的线程实现方式 Java中有两种创建线程的方式:继承Thread类和实现Runnable接口。 继承T…

    other 2023年6月27日
    00
  • 详解Vue之父子组件传值

    我们来详解Vue之父子组件传值的完整攻略。 在Vue中,父组件可以通过props向子组件传递数据,子组件可以通过$emit方法向父组件发送事件。这两种方式能够解决父组件和子组件数据的传递问题。 父组件向子组件传值 父组件通过props向子组件传递数据,子组件通过props接收父组件传递过来的数据。下面是一个示例: <!– 子组件 Child.vue …

    other 2023年6月27日
    00
  • Vue三层嵌套路由的示例代码

    Vue三层嵌套路由的示例代码攻略 在Vue中,我们可以使用Vue Router来实现路由功能。三层嵌套路由是指在一个页面中,有三个层级的路由嵌套关系。下面是一个示例代码,展示了如何实现三层嵌套路由。 首先,我们需要在Vue项目中安装Vue Router。可以使用以下命令进行安装: npm install vue-router 接下来,在项目的入口文件(通常是…

    other 2023年7月28日
    00
  • CSS2中从优先权重的计算方式来辨别下CSS

    CSS2 中,样式的优先权重是由选择器的特殊性(specificity)和源代码顺序(order)两者共同决定的。通过这个规则,我们可以区分不同优先级的 CSS 规则,并决定哪个样式优先应用。 选择器特殊性 每个选择器都有它自己的特殊性值,表示它的权重。特殊性值靠谱如下: 选择器中每个 ID 值为一个数,即 0, 1, 0, 0 选择器中每个 class 值…

    other 2023年6月27日
    00
  • esxi6.5从载到安装

    以下是详细讲解“ESXi 6.5从载到安装的完整攻略,过程中至少包含两条示例说明”的标准Markdown格式文本: ESXi 6.5从载到安装攻略 ESXi是一种常用的虚拟化平台,可以方便地创建和管理虚拟机。本攻略将介绍ESXi 6.5从载到安装的详细步骤。 步骤一:下载ESXi 6.5 可以使用以下链接下载ESXi 6.5: https://my.vmwa…

    other 2023年5月10日
    00
  • python中super()函数的理解与基本使用

    标题:Python中super()函数的理解与基本使用 概述:super()是一个内置函数,用于调用父类(超类)的一种方法。 1.理解super()函数 super()函数用于子类继承父类的属性和方法。它通常在子类的构造函数中使用,以便使用父类的方法和属性。 它的语法如下: class SubClassName(ParentClass): def __ini…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部