7_spring-cloud-config-center

2023-11-10


配置中心

  • spirng-cloud-config + github 搭建;
  • 服务比较多, 下发配置文件比较麻烦;
  • 服务启动时, 从公共服务拉取配置信息; 这个公共服务就是配置中心
  • 什么样的数据需要放配置中心:
    • 个性化的配置, 这种情况可以放本地, 或者命令行传入;
  • 3个角色:配置存储方-github/gitlab、配置读取方-configServer、配置使用方-普通的微服务节点,从configServer获取配置;

使用

  • 也需要一个独立的服务;

  • 依赖:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
  • 完整pom:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <groupId>com.go.cn</groupId>
    <artifactId>config-center</artifactId>
    <version>0.0.1</version>

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Hoxton.SR3</spring-cloud.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>
  • @EnableConfigServer
  • 改配置文件:其实是新项目的完整配置:
server:
  port: 9000

eureka:
  client:
    service-url:
      defaultZone: http://euk1.com:7000/eureka/
spring:
  application:
    name: config-server
  cloud:
    config:
      label: master
      server:
        git:
          uri: https://github.com/xxx/config-center.git
  • 测试地址:http://localhost:9000/master/config-client-dev.properties

匹配规则

获取配置规则:根据前缀匹配
/{name}-{profiles}.properties
/{name}-{profiles}.yml
/{name}-{profiles}.json
/{label}/{name}-{profiles}.yml

---
lable:仓库分支、默认master分支
name:服务名称
profile:环境名称,开发、测试、生产:dev qa prd

---
匹配原则:从前缀开始。

具体节点从配置中心读取配置

  • 此处使用consumer 节点;配置文件名称要从 application.properties/application.yml 修改为 bootstrap.properties/bootstrap.yml
  • 需要注意 consumer 要在 ConfigCenter 启动之后再启动。bootstrap.yml 和 application.yml 是可以共存的。
  • 引入依赖:
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-client</artifactId>
</dependency>
  • bootstrap.yml 配置文件:
spring:
  cloud:
    config:
      label: dev
      profile: dev
      uri: http://localhost:9000/
  • controller:
 @Value("${config.info}")
    String info;

@GetMapping("/configInfo")
public Object configInfo() {
    return info;
}
  • curl -Lv http://localhost:90/configInfo

刷新配置

单个刷新

  • 修改配置文件后热生效/加载:
    • Controller 上加: @RefreshScope
    • 加 actuator,开启actuator中的refresh端点
    • 开放/暴露端点;
  • 手动更新一个服务: post 请求 http://ip:port/actuator/refresh;

批量刷新

  • 批量更新: 使用消息总线 bus, 与注册中心的区别在于, bus 是主动推消息的, 而注册中心的数据需要拉取;

bus 使用

  • 需要一个mq: spring-cloud默认支持 rabbitmq, kafka;
  • 安装 rabbitmq:
    • rabbitmq 注意 rabbitmq-plugins enable rabbitmq_management;
    • 默认用户: guest/guest;
    • 具体安装步骤参考:https://blog.csdn.net/wwq921220/article/details/126923410
  • 添加 amqp 依赖,config-center 和 consumer 都要进行添加:
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
  • 配置文件调整:consumer 配置在 bootstrap.yml 中:
# 这一段consumer 和 config-center 都需要配置
spring:
  rabbitmq:
    host: 192.168.1.9
    username: admin
    password: 123456
    port: 5672

  # 这一段只有 consumer 进行配置
  cloud:
    config:
      discovery:
        enabled: true
        service-id: config-server
      label: dev
      profile: dev

#  config-center 没有配置中心的配置时,需要这一段
eureka:
  client:
    service-url:
      defaultZone: http://euk1.com:7000/eureka/
  • 某个服务集群批量更新,向服务任一端点发送post请求: curl -X POST http://ip:port/actuator/bus-refresh
  • 所有服务集群批量更新: 将mq/amqp/actuator打开端点 那一套配置到 config-center 上, curl -X POST http://config_center_ip:port/actuator/bus-refresh
  • config-center 暴露端点:
management:
  endpoints:
    web:
      exposure:
        include: '*'

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

7_spring-cloud-config-center 的相关文章

随机推荐

  • 华为OD机试 - 跳格子2(Java)

    题目描述 小明和朋友玩跳格子游戏 有 n 个连续格子组成的圆圈 每个格子有不同的分数 小朋友可以选择以任意格子起跳 但是不能跳连续的格子 不能回头跳 也不能超过一圈 给定一个代表每个格子得分的非负整数数组 计算能够得到的最高分数 输入描述
  • Android-Service的生命周期

    与Activity类似 Service也有自己的生命周期函数 在不同的时刻 系统会调用对应的Service生命周期函数 不过与Activity声明周期相比 Service的声明周期更加简单 我们通过官方给出的一张图片来体会一下 Servic
  • Low Elements--AT

    题目描述 Given is a permutation P1 PN of 1 N Find the number of integers i 1 i N that satisfy the following condition For an
  • Selenium3 - 当启动selenium时,跳过配置的chromedriver,使用内置低版本浏览器启动

    报错 今天我在运行selenium的时候 发现会直接弹出一个名为NW js的弹窗且其chromium 是68 我寻思我配的chromedriver已经是94 的了 虽然它也能正常启动但是用着怎么也不对劲 我搜索良久没有答案 就仔细检查了一下
  • 利用爬虫下载批量图片

    这是利用python爬取豆瓣Top250电影图片 并下载在本地的一个文件夹中的例子 用了urllib request urlretrieve 直接上代码了 注释说的很清楚哦 import urllib import urllib reque
  • CMD命令

    打开命令提示符 1 添加服务 输入 sc create 服务名称 binPath 目录的绝对路径 exe 2 删除服务 输入 sc delete 服务名称 3 修改服务描述 输入 sc description 服务名称 描述
  • 过拟合以及解决办法

    过拟合 先谈谈过拟合 所谓过拟合 指的是模型在训练集上表现的很好 但是在交叉验证集合测试集上表现一般 也就是说模型对未知样本的预测表现一般 泛化 generalization 能力较差 如图所示 图片来源 coursera 吴恩达机器学习公
  • D0822-API01

    Math类 工具类有 Math Objects Arrays LocalDateTime Period Duration DateTimeFormatter Math类中包含一些对数据进行数学运算的方法 而该类中的方法全都是静态的 像这样的
  • 函数的相关和卷积

    1 卷积的定义 卷积满足交换律 分配律 结合律 也具有位移不变性以及缩放性质 2 互相关的定义 变量替换后有 上述两式完全等价 性质 1 互相关是两个函数间存在相似性的量度 2 由上述 2 式可得 3 相关运算和卷积运算的区别 对相关来说
  • 【STM32】DHT11温湿度模块传感器详解&代码

    一 DHT11产品介绍 DHT11是数字温湿度传感器 测量范围 湿度20 95 温度0 50 广泛应用于加湿器 温湿度计 空调 汽车等领域 二 典型应用电路 如上图DATA引脚用于MCU与DHT11之间的通讯和同步 采用单总线数据格式 一次
  • Swing:使用顶层容器

    介绍Swing顶层容器 翻译Using Top Level Containers url http java sun com docs books tutorial uiswing components toplevel html url
  • 如何查看iphone的uuid_如何查找Mac,iPhone和iPad的UUID

    Mac iPhone和iPad都分配了通用唯一标识符 UUID 这些代码是特定于每个设备的 类似于序列号 开发人员使用它们来分别标识每个代码 这是您需要知道的 UUID是由字母和数字组成的字符串 形成唯一的模式 您的Mac iPhone和i
  • (z)无杂散动态范围SFDR--影响通信机性能的因素

    无杂散动态范围SFDR Spurious Free Dynamic range 已经成为一个重要的性能指标 直接影响到通信系统的等级水平 尤其是对数字化的VHF UHF宽频段接收机 SFDR这个指标 越来越受到设计者与质量监督人员的重视 一
  • STM32 基础系列教程 36 - Lwip_dns

    前言 域名系统 英文 DomainNameSystem 缩写 DNS 是互联网的一项服务 它作为将域名和IP地址相互映射的一个分布式数据库 能够使人更方便地访问互联网 DNS使用TCP和UDP端口53 当前 对于每一级域名长度的限制是63个
  • 内存泄漏

    2017 09 23 有一件事情 以后也一定要注意 那就是注意释放内存 这次的教训就是 哈希表每次清理的时候 直接就是计数清零了 但是却忘了把拉出来的链表给好好清理一下 2018 03 27 在写控制端口服务端的时候 使用了链表来进行控制
  • 制作ghost镜像

    本篇主要是制作镜像步骤 后面会有ghost镜像安装系统的博文出来 敬请关注 准备工作 1 使用正常的系统 一般c盘作为系统盘 2 下载PE工具 并安装 老毛桃 大白菜 u深度均可 3 一个空U盘 制作成PE盘 制作老毛桃PE为例 选择默认模
  • Conclusion about Scene Change Detection

    Refer to error concealment there are lost of research paper Today I want to conclude some paper about scene change detec
  • stm32f103最小系统

    STM32F103 最小系统是指使用 STM32F103 系列微控制器构建的最简单的系统 它通常包括 STM32F103 微控制器 外部存储器 如 flash 存储器或 EEPROM 外部晶振以及最少的电路元件 如电阻 电容和开关 最小系统
  • 【华为OD机试 2023 B卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • 7_spring-cloud-config-center

    文章目录 配置中心 使用 匹配规则 具体节点从配置中心读取配置 刷新配置 单个刷新 批量刷新 bus 使用 配置中心 spirng cloud config github 搭建 服务比较多 下发配置文件比较麻烦 服务启动时 从公共服务拉取配