分布式配置 Config

news2024/11/16 7:22:11

一、Config 简介

1、Config的组成

Server:分布式配置中心,是独立运行的微服务应用,连接配置仓库(Git、SVN、本地化文件等)并为客户端提供获取配置信息、加密信息和解密信息的访问接口。
Client:各个微服务,通过 Server 对配置管理,从 Sever 中获取和加载配置信息。

二、使用

(一)、配置中心搭建

1、引入依赖

  <!--配置中心服务器依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>

2、修改配置

server:
  port: 8000 #端口号
spring:
  application:
    name: jun-config-center #服务名
  cloud:
    config:
      server:
        git:
          # Git 地址,https://gitee.com/java-mohan/springcloud-config.git
          # 码云(gitee)地址 uri: https://github.com/javmohan/springcloud-config.git  (github 站点访问较慢,因此这里我们使用 gitee)
          uri: https://gitee.com/java-mohan/springcloud-config.git
          #仓库名
          search-paths:
            - springcloud-config
          force-pull: true
          # 如果Git仓库为公开仓库,可以不填写用户名和密码,如果是私有仓库需要填写
          # username: ********
          # password: ********
      #分支名
      label: master

3、启动类

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

@SpringBootApplication
@EnableEurekaClient
@EnableConfigServer
public class JunConfigCenterApplication {
    public static void main(String[] args) {
        SpringApplication.run(JunConfigCenterApplication.class, args);
    }
}

4、创建 config-dev.yml文件上传到springcloud-config 仓库 master 分支下

config:
  info: c.biancheng.net
  version: 1.0

1.启动配置中心服务,并用浏览器访问 http://localhost:8000/master/config-dev.yml

2.Config 的文件访问规则

(二)、服务端搭建 

1、引入依赖

        <!--Spring Cloud Config 客户端依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <!--手动刷新监控-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

2、修改配置文件

#bootstrap.yml 是系统级别的,加载优先级高于 application.yml ,负责从外部加载配置并解析
server:
  port: 8001 #端口号
spring:
  application:
    name: jun-config-client #服务名
  cloud:
    config:
      label: master #分支名称
      name: config  #配置文件名称,config-dev.yml 中的 config
      profile: dev  #环境名  config-dev.yml 中的 dev
      #这里不要忘记添加 http:// 否则无法读取
      uri: http://localhost:8000 #Spring Cloud Config 服务端(配置中心)地址

# Spring Boot 2.50对 actuator 监控屏蔽了大多数的节点,只暴露了 health 节点,本段配置(*)就是为了开启所有的节点
management:
  endpoints:
    web:
      exposure:
        include: "*"   # * 在yaml 文件属于关键字,所以需要加引号

3、启动类

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

@SpringBootApplication
@EnableEurekaClient
public class JunConfigClientApplication {
    public static void main(String[] args) {
        SpringApplication.run(JunConfigClientApplication.class, args);
    }
}

4、 代码使用

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;


// 读取配置中心指定配置文件的内容,并展示到页面
@RefreshScope //为了让动态(手动)的获取最新的git 配置,在添加 actuator 监控加载 RefreshScope,
@RestController
public class ConfigClientController {

    @Value("${server.port}")
    private String serverPort;

    @Value("${config.info}")
    private String configInfo;

    @Value("${config.version}")
    private String configVersion;

    @GetMapping(value = "/getConfig")
    public String getConfig() {
        return "info:" + configInfo + "<br/>version:" + configVersion + "<br/>port:" + serverPort;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/707845.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGLM2-6B发布,位居C-Eval榜首

ChatGLM-6B自2023年3月发布以来&#xff0c;就已经爆火&#xff0c;如今6月25日&#xff0c;清华二代发布&#xff08;ChatGLM2-6B&#xff09;&#xff0c;位居C-Eval榜单的榜首&#xff01; 项目地址&#xff1a;https://github.com/THUDM/ChatGLM2-6B HuggingFace&#xf…

java开发必备技能之Java泛型

简介 泛型的优点 1、泛型的本质是为了参数化类型&#xff0c;也就是在在不创建新的类型的情况下&#xff0c;通过泛型指定的不同类型来控制形参具体限制的类型&#xff0c;很明显这种方法提高了代码的复用性(比如List因为使用泛型可以添加任意类型的对象&#xff0c;而不需要…

《PyTorch深度学习实践》第八讲 加载数据集

b站刘二大人《PyTorch深度学习实践》课程第八讲加载数据集笔记与代码&#xff1a;https://www.bilibili.com/video/BV1Y7411d7Ys?p8&vd_sourceb17f113d28933824d753a0915d5e3a90 Dataset用于构造数据集&#xff0c;该数据集能够支持索引 DataLoader用于从数据集中拿出一个…

深入理解计算机系统(3)_计算机指令

深入理解计算机系统系列文章目录 第一章 计算机的基本组成 1. 内容概述 2. 计算机基本组成 第二章 计算机的指令和运算 3. 计算机指令 4. 程序的机器级表示 5. 计算机运算 6. 信息表示与处理 第三章 处理器设计 7. CPU 8. 其他处理器 第四章 存储器和IO系统 9. 存储器的层次…

金融基础知识(三):期权

1.认购期权与认沽期权 认购期权和认沽期权都是交易所常见的期权合约。 认购期权&#xff08;Call Option&#xff09;是一种给予持有人以在未来某个时间或特定事件发生时购买底层标的资产的权利。认购期权的持有人在行权日&#xff08;Expiration Date&#xff09;可以按照期…

B/S架构的C#云检验系统源码 实验室信息管理系统源码

科技的飞速发展为实验室信息管理带来了新机遇&#xff0c;云计算技术的应用更是为实验室信息管理打开了新的大门。云 LIS 实验室信息管理系统&#xff0c;作为一种新型的信息化管理方案&#xff0c;已经在多个实验室的信息化管理中得到应用&#xff0c;并且具有广阔的应用前景。…

Python3 命名空间和作用域 | 菜鸟教程(十七)

目录 一、命名空间 &#xff08;一&#xff09;简介 1、命名空间(Namespace)是从名称到对象的映射&#xff0c;大部分的命名空间都是通过 Python 字典来实现的。 2、命名空间提供了在项目中避免名字冲突的一种方法。 3、各个命名空间是独立的&#xff0c;没有任何关系的&a…

访问者模式(Vistor)

定义 访问者是一种行为设计模式&#xff0c;它能将算法与其所作用的对象隔离开来。 前言 1. 问题 假如你的团队开发了一款能够使用巨型图像中地理信息的应用程序。图像中的每个节点既能代表复杂实体&#xff08;例如一座城市&#xff09;&#xff0c; 也能代表更精细的对象…

Nginx【Docker(安装Nginx、Nginx服务启停控制、全局块、events块、HTTP块)】(二)-全面详解(学习总结---从入门到深化)

目录 Docker安装Nginx Nginx服务启停控制 Nginx配置指令详解_全局块 Nginx配置指令详解_events块 Nginx配置指令详解_HTTP块 Docker安装Nginx 拉取官方的Nginx镜像 [rootlocalhost ~]# docker pull nginx 以下命令使用 Nginx 默认的配置来启动一个 Nginx 容器实例&#xf…

小驰私房菜_28_Qcom Camx相关名词

(Qcom 7325平台) CSID = Camera Serial Interface Decoder module IPE = Image Processing Engine IFE (x3) = Image Front End IFE_lite (x2) BPS = Bayer processing segment (for Snapshot) IPE = Image Processing Engine VPU = Video Processing Unit (CODEC) DP…

matplotlib布局模式

栅格布局 import matplotlib.pyplot as plt import numpy as np plt.figure("OBJ")x np.linspace(-np.pi, np.pi, 1000) cosy np.cos(x) siny np.sin(x) y x * 0.5 timesy x ** 2 # 创建九宫格 gs plt.GridSpec(3, 3) # 第0-1行&#xff0c;第2列 plt.subplot…

Eclipse中有用的快捷键

Eclipse中有的快捷键自己记不清楚&#xff0c;但用起来又很方便&#xff0c;遇到了就放在这边备忘。 【CtrlO】快速定位某个类中的属性、方法 有时候&#xff0c;一个类中的属性、方法比较多&#xff0c;想用快捷键快速查找&#xff0c;提升效率。 举例&#xff1a;我想查找…

MYSQL-聚合函数及分组查询

常用聚合函数 COUNT() 求有多少行 SUM() 求和 AVG() 求平均值 MIN() 求最小值 MAX() 求最大值 举个栗子 SELECT AVG(price) FROM products WHERE price_id > 10; 这行代码就是在求id大于10的价格的平均值 AVG(price)表示求price列的平均值 执行逻辑为 先由WHERE…

Mock在接口测试中的实际应用

关于Mock测试 01、含义和目的 1、 什么是mock测试&#xff1f; Mock 测试就是在测试过程中&#xff0c;对于某些不容易构造&#xff08;如 HttpServletRequest 必须在Servlet 容器中才能构造出来&#xff09;或者不容易获取的比较复杂的对象&#xff08;如 JDBC 中的ResultSe…

chatgpt赋能python:下载完Python,如何进入编辑器

下载完Python&#xff0c;如何进入编辑器 Python是一门高级编程语言&#xff0c;具有简单易懂、易于学习、可拓展性强等特点&#xff0c;被广泛应用于Web应用、桌面应用、科学计算、人工智能等众多领域。如果你已经下载并安装了Python&#xff0c;那么接下来如何进入编辑器呢&…

uniapp智慧停车场系统微信小程序h5、APP源码 智能停车系统源码 安装搭建部署教程

【APP】: flutter(原生混合框架&#xff0c;不是web封装&#xff0c;原生应用&#xff0c;一套代码直接生成原生Android和ios应用)&#xff0c;既不损失性能&#xff0c;也能降低开发成本 【小程序/h5/公众号】&#xff1a;uni-app(底层框架Vue) 【后台管理】&#xff1a;vue-e…

DeepSpeed-Chat 打造类ChatGPT全流程 笔记一

这篇文章主要是对DeepSpeed Chat的功能做了一些了解&#xff0c;然后翻译了几个主要的教程了解了一些使用细节。最后在手动复现opt-13b做actor模型&#xff0c;opt-350m做reward模型进行的chatbot全流程训练时&#xff0c;踩了一些坑也分享出来了。最后使用训练后的模型做servi…

计算机组成原理(课堂测验3次)

3、同步通信与异步通信的主要区别是什么&#xff0c;说明通信双方如何联络。 同步通信和异步通信的主要区别是&#xff1a;前者有公共时钟线&#xff0c;所有设备按统一的时序、同一的传输周期进行信息传输&#xff0c;通信双方按约定好的时序联络&#xff1b;后者没有公共时钟…

探秘直链网盘:高效传输、便捷分享的存储利器!

什么是直链网盘&#xff1f; 直链网盘是一种用于存储和共享文件的在线服务。它为用户提供了一个方便的方式来存储和访问他们的文件&#xff0c;而无需依赖本地存储设备。直链网盘的主要特点是它们可以生成直接下载链接&#xff0c;允许用户快速下载文件&#xff0c;而不需要进…

使用 Sigstore 签名的 Elastic Stack 容器镜像!

作者&#xff1a;Maxime Greau 软件供应链攻击不断增加。 这就是为什么这个主题是安全领导者的首要任务。 在这方面&#xff0c;这篇博文重点介绍了使用 Sigstore 对 Elastic Stack 容器镜像进行签名的新功能&#xff0c;以便&#xff1a; 保护 Elastic 软件供应链工作流程为…