springcloud:分布式配置中心(spring cloud config)

SpringCloud(13):分布式配置中心 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件spring cloud confifig ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。在spring cloud confifig 组件中,分两个角色,一是config server,二是config client。 阅读详情

1,spring cloud config 介绍

这里写图片描述
微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的配置管理设施是必不可少的。SpringCloud提供了ConfigServer来解决这个问题。
SpringCloud Config为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环境提供了一个中心化的外部配置。
SpringCloud Config分为服务端和客户端两部分(这里只介绍服务端的搭建)。
服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息,加密/解密信息等访问接口
客户端则是通过指定的配置中心来管理应用资源,以及与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息配置服务器默认采用git来存储配置信息,这样就有助于对环境配置进行版本管理,并且可以通过git客户端工具来方便的管理和访问配置内容。

2,SpringCloud Config服务端配置

新建一个springboot项目,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>

    <groupId>springcloud_config_service</groupId>
    <artifactId>config_service</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>config_service</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Finchley.SR1</spring-cloud.version>
    </properties>

    <dependencies>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- 配置中心是svn的话需要导入此包 -->
        <dependency>
            <groupId>org.tmatesoft.svnkit</groupId>
            <artifactId>svnkit</artifactId>
            <version>1.8.10</version>
        </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>

在本地仓库新建一个git仓库(github和码云都可以),然后在里面建立两个文件application-dev.properties和application-test.properties,然后推送到远程的git仓库(这里贴出我的远程码云git配置仓库:https://gitee.com/hwm0717/springcloud_config.git),由于我考虑到后续可能会有多个项目,所以我新建了一个二级目录springcloud_demo,里面存放当前项目的配置,根据自己需求选择可以不建
这里写图片描述
application-dev.properties 内容如下:
这里写图片描述
application-test.properties 内容如下:
这里写图片描述
本地项目的 application.properties配置:


server.port=6010

#服务的git仓库地址
spring.cloud.config.server.git.uri=https://gitee.com/hwm0717/springcloud_config.git
#配置文件所在的目录
spring.cloud.config.server.git.search-paths=/springcloud_demo
#配置文件所在的分支
spring.cloud.config.label=master
#git仓库的用户名
spring.cloud.config.username=
#git仓库的密码
spring.cloud.config.password=

#服务的svn仓库地址
#使用svn作为配置仓库,必须显示声明profiles.active=subversion,不然还是用的git
#spring.profiles.active=subversion
#spring.cloud.config.server.svn.uri=svn://192.168.2.200/dev/code/web/springcloud_config
#spring.cloud.config.server.svn.search-paths=/springcloud_demo
#spring.cloud.config.server.svn.default-label=springcloud_demo
#spring.cloud.config.server.svn.username=
#spring.cloud.config.server.svn.password=

在启动类上开启配置中心的注解:@EnableConfigServer:

package springcloud.config;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@SpringBootApplication
@EnableConfigServer
@Controller
public class ConfigServiceApplication {

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

    @GetMapping("/")
    @ResponseBody
    public String hello(){

        return "Hello springConfigService";
    }
}

完整项目结构:
这里写图片描述

到这里服务端配置就算已经完成了,下面验证一下服务端的配置有没有什么问题,启动ConfigServiceApplication,在浏览器里输入
http://localhost:6010/springcloud_demo/dev
http://localhost:6010/springcloud_demo/test
后,返回内容:
这里写图片描述
可以看到application-dev.properties和application-test.properties配置文件里面配置的内容,说明我们的配置中心搭建成功了

3,使用svn作为配置信息读取

上面我们已经导入了svn配置所需要的jar包(不需要使用svn的可以删除)

<!-- 配置中心是svn的话需要导入此包 -->
<dependency>
    <groupId>org.tmatesoft.svnkit</groupId>
    <artifactId>svnkit</artifactId>
    <version>1.8.10</version>
</dependency>

把上面application.properties配置文件git的配置注释,把svn注释打开,并在svn仓库创建配置目录和配置文件(我这里svn仓库和git仓库配置内容一样,只是source字段变成svn了)
目录结构:
这里写图片描述
文件内容:
这里写图片描述
svn目录创建好后就可以通过
http://localhost:6010/springcloud_demo/dev
http://localhost:6010/springcloud_demo/test
链接访问svn的配置信息了(文件名不变的话访问地址也不用改变)
这里写图片描述
到这里,分布式配置中心git和svn的仓库配置就已经完成了

SpringCloud教程 : 分布式配置中心Spring Cloud Config   ws:在上一篇文章讲述zuul的时候,已经提到过,使用配置服务来保存各个服务的配置文件。它就是Spring Cloud Config。 一、简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支... 阅读详情

相关推荐

我的架构梦:(四十)SpringCloud核心组件之 Spring Cloud Config 分布式配置中心

SpringCloud核心组件之 Spring Cloud Config 分布式配置中心一、分布式配置中心应用场景二、Spring Cloud Config三、Config配置手动刷新四、Config配置自动更新 一、分布式配置中心应用场景 往往,我们使用配置文件管理一些配置信息,比如application.yml。 单体应用架构,配置信息的管理、维护并不会显得特别麻烦,手动操作就可以,因为就一个工程; 微服务架构,因为我们的分布式集群环境中可能有很多个微服务,我们不可能一个一个去修改配置然后 重启生效,

riemann_的博客 647

SpringCloud Config分布式配置中心

SpringCloud Config分布式配置中心

技术成就梦想 594

组合导航-IMU-GPS-RTK基本介绍

在实际应用中,需要利用 GPS、北斗等方式产生的信号进行初始化,结合惯导信号和卫星导航信号进行进行卡尔曼滤波处理,得出其最佳推算的定位信息。惯导比起卫星定位具有自身的技术优势,测量方法不依赖外界,短期精度高,能稳 定高频地输出信号。工作原理是通过感知物体在空间的角速度、线速度,进而获取物体的姿态、位置和速度等信息,实现对运动物体姿态和运动轨迹的测量,可以实现全天候全地点地工作。但惯导也有自身的缺陷,由于采用积分算法,定位误差随 载体运行不断累积。

NCU_wander的博客 8016

spring cloud :五、分布式配置中心(spring cloud config)

在分布式系统中,每一个功能模块都能拆分成一个独立的服务,一次请求的完成,可能会调用很多个服务协调来完成,为了方便服务配置文件统一管理,更易于部署、维护,所以就需要分布式配置中心组件了,在spring cloud中,有分布式配置中心组件spring cloud config,它支持配置文件放在在配置服务的内存中,也支持放在远程Git仓库里。引入spring cloud config后,我们的外部配置...

凡夫编程 9万+

《数据结构》02-线性结构1 两个有序链表序列的合并

题目 本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。 函数接口定义: List Merge( List L1, List L2 ); 其中List结构定义如下: typedef struct Node *PtrToNode; struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next;...

叫我皮卡丘 7665

伪距单点定位算法原理以及利用最小二乘法计算实例

即该公式:建立下列代价函数满足最佳估值的条件为:即:可解得未知参数 X 的最佳估值由于每个可见卫星观测量的精度可能不一样,这时,需要对不同观测量赋予一个权重系数,称为加权。

qq_43381998的博客 1万+

SpringCloud - 配置中心

微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的配置管理设施是必不可少的。

m0_66689823的博客 5972

保姆级教程:用MATLAB复现格拉斯哥大学FMCW雷达数据集多普勒谱(附完整代码与避坑指南)

本文提供了一份详细的MATLAB教程,指导如何复现格拉斯哥大学FMCW雷达数据集的多普勒谱分析。从环境准备、数据获取到距离压缩、MTI滤波、时频分析(STFT)以及结果后处理,涵盖了完整流程,并附有优化代码和避坑指南,特别适合雷达信号处理研究者和工程师。

weixin_28720767的博客 116

SpringCloud 10 - SpringCloud config 分布式配置中心

SpringCloud 09 - Gateway 网关 1. 概述

Janet的博客 372

FPGA波束形成:从算法到硬件的艺术之旅

本文深入探讨了FPGA在波束形成技术中的应用,从算法原理到Verilog硬件实现的全过程。文章详细分析了FPGA并行处理、低延迟和可重构特性如何优化波束形成系统性能,并提供了Verilog关键模块代码示例和资源优化策略,为工程师实现高效FPGA波束形成解决方案提供实用指导。

tea88的博客 1044

笔试题-2023-思特威-数字电路设计(CIS)【纯净题目版】

10 笔试题-2023-思特威-数字电路设计(CIS)【纯净题目版】

w0shishabi的博客 1472

springCloud08—分布式配置中心:Spring Cloud Config

其中囊括了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。

2401_83329718的博客 759

AutosarMCAL开发——基于EB MCU驱动

本文为博主个人学习总结记录,如有不正,欢迎指正。

qq_45583706的博客 921

springCloud08—分布式配置中心:Spring Cloud Config(1)

8.1 快速入门。

2501_90433058的博客 1946

动力学约束下的运动规划算法——Kinodynamic RRT*算法

动力学约束下的运动规划算法——Kinodynamic RRT*算法

慕羽★的博客 6749

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

SpringCloud:分布式配置中心——Spring Cloud Config

一,Spring Cloud Config     Spring Cloud Config是Spring Cloud体系内部提供的分布式配置中心,用来进行配置信息统一处理。分布式配置中心整体流程如下图,用户推送配置信息到GIT/SVN版本控制中心,创建Config Server服务专门从GIT/SVN上获取配置文件到缓存中,Config Client客户端从Config Server读取配置信息...

zp_zhang的博客 593

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

从零学SpringCloud系列(八):分布式配置中心Spring Cloud Config

一、快速入门 1.1 项目版本 spring boot:2.2.5.RELEASE spring cloud:Hoxton.SR3 1.2 项目地址 https://github.com/zhenghaoxiao/spring-cloud-in-action/tree/dev 在搭建配置中心的时候,我们需要注意的一个地方就是,在配置客户端的时候,我们需要使用bootstrap.properties,这样config-server中的配置信息才能被正确的加载。具体搭建过程可以参考下面文章: ht

Jack 架构师之路 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

史上最简单的SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)

简介在分布式系统中,spring cloud config 提供一个服务端和客户端去提供可扩展的配置服务。我们可用用配置服务中心区集中的管理所有的服务的各种环境配置文件。配置服务中心采用git的方式存储配置文件,因此我们很容易部署修改,有助于对环境配置进行版本管理。

方志朋的专栏 44万+

springCloud08—分布式配置中心:Spring Cloud Config,java线程面试常问

作为一名即将求职的程序员,面对一个可能跟近些年非常不同的 2019 年,你的就业机会和风口会出现在哪里?在这种新环境下,工作应该选择大厂还是小公司?已有几年工作经验的老兵,又应该如何保持和提升自身竞争力,转被动为主动?就目前大环境来看,跳槽成功的难度比往年高很多。一个明显的感受:今年的面试,无论一面还是二面,都很考验Java程序员的技术功底。最近我整理了一份复习用的面试题及面试高频的考点题及技术点梳理成一份“Java经典面试问题(含答案解析).pdf和一份网上搜集的“Java程序员面试笔试真题库.pdf。

weixin_57485542的博客 946
上一篇: Linux 通过RPM包安装 MySQL 8.0
下一篇: Linux 通过RPM包安装 MySQL 5.7
hwmhehe
博客等级 码龄13年 86粉丝 106原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值