IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 配置中心 SpringCloud Config -> 正文阅读

[Java知识库]配置中心 SpringCloud Config

一、什么是配置中心

1.1 配置中心概述

对于传统的单体应用而言,常使用配置文件来管理所有配置,比如 SpringBoot 的 application.yml 文件,但是在微服务架构中全部手动修改的话很麻烦而且不易维护。微服务的配置管理一般有以下需求:

  • 集中配置管理,一个微服务架构中可能有成百上千个微服务,所以集中配置管理是很重要的。
  • 不同环境不同配置,比如数据源配置在不同环境(开发、生产、测试)中是不同的。
  • 运行期间可动态调整。例如,可根据各个微服务的负载情况,动态调整数据源连接池大小等。
  • 配置修改后可自动更新。如配置内容发生变化,微服务可以自动更新配置。

综上所述,对于微服务架构而言,一套统一的,通用的管理配置机制是不可缺少的重要组成部分。常见的做法就是通过配置服务器进行管理。

二、SpringCloud Config 简介

2.1 简介

SpringCloud Config 为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同的微服务应用的所有环境提供了一个中心化的外部配置。

SpringCloud Config 分为服务端和客户端两部分。
服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置服务器,并为客户端提供获取配置信息、加密/解密信息等访问接口。
客户端则是通过指定的配置中心来管理应用资源,以及与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息。
配置服务器默认采用 git 来存储配置信息,这样就有助于对环境配置进行版本管理,并且可以通过 git 客户端工具来方便的管理和访问配置内容。

2.2 作用

  • 集中管理配置文件
  • 不同环境不同配置,动态化的配置更新,分环境部署,比如 dev/test/prod/beta/release
  • 运行期间动态调整配置,不再需要在每个服务部署的机器上编写配置文件,服务会向配置中心统一拉取配置自己的信息
  • 当配置发生变动时,服务不需要重启即可感知到配置的变化,并应用新的配置
  • 将配置信息以 REST 接口的形式暴露,可使用 post、curl 进行访问刷新。

三、SpringCloud Config 入门

Config Server 是一个可横向扩展、集中式的配置服务器,它用于集中管理应用程序各个环境下的配置,默认使用 Git 存储配置文件的内容,也可以使用 SVN 存储,或者是本地文件存储。这里使用 Git 作为学习的环境。

3.1 登录 GitHub,创建 springcloud-config 仓库

仓库创建完成后,添加三个文件,分别为 config-dev.yml,config-prod.yml,config-test.yml。
在这里插入图片描述
config-dev.ym 内容如下:

config:
  info: "master branch, springcloud-config/config-dev.yml version=1"

config-prod.ym 内容如下:

config:
  info: "master branch, springcloud-config/config-prod.yml version=1"

config-test.ym 内容如下:

config:
  info: "master branch, springcloud-config/config-test.yml version=1"

最后注意修改分支名称,将 main 修改为 master。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 创建 cloud-config-center-3344 子模块

3.3 修改 pom.xml

<?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">
    <parent>
        <artifactId>cloud2020</artifactId>
        <groupId>com.atguigu.springcloud</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>cloud-config-center-3344</artifactId>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </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>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
    </dependencies>

</project>

3.4 配置 application.yml

server:
  port: 3344

spring:
  application:
    name: cloud-config-server
  cloud:
    config:
      server:
        git:
          uri: https://github.com/penggithub123/springcloud-config.git
          search-paths:
            - springcloud-config
      label: master

eureka:
  client:
    service-url:
      defaultZone: http://localhost:7001/eureka
  • 通过 spring.cloud.config.server.git.uri : 配置git服务地址
  • 通过spring.cloud.config.server.git.username: 配置git用户名
  • 通过spring.cloud.config.server.git.password: 配置git密码

git 服务地址获取:
在这里插入图片描述

3.5 配置主启动类

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

3.6 测试

先启动 eureka7001 服务,再启动当前服务。然后访问:http://localhost:3344/master/config-dev.yml
在这里插入图片描述
访问:http://localhost:3344/master/config-prod.yml
在这里插入图片描述
访问:http://localhost:3344/master/config-test.yml
在这里插入图片描述

3.7 配置读取规则

(1)/{label}/{application}-{profile}.yml
例如,master分支:
http://localhost:3344/master/config-dev.yml
http://localhost:3344/master/config-prod.yml
http://localhost:3344/master/config-test.yml
dev 分支:
http://localhost:3344/dev/config-dev.yml
http://localhost:3344/dev/config-prod.yml
http://localhost:3344/dev/config-test.yml

(2)/{application}-{profile}.yml
http://localhost:3344/config-dev.yml
http://localhost:3344/config-prod.yml
http://localhost:3344/config-test.yml
http://localhost:3344/config-xxxx.yml (不存在的配置)

(3)/{application}/{profile}[/{label}]
http://localhost:3344/config/dev/master
http://localhost:3344/config/prod/master
http://localhost:3344/config/test/master

总结:
/{name}-{profiles}.yml
/{label}-{name}-{profiles}.yml

label:分支(branch)
name :服务名
profiles:环境(dev/test/prod)

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-07-21 21:22:54  更:2022-07-21 21:24:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:26:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码