一、简介
为了方便统一管理配置文件管理,使用spring cloud config作为分布式配置中心,国产比较好的有百度的disconf,携程的apollo,这里我们介绍使用spring cloud config。它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git、SVN等仓库中。在spring cloud config 组件中,分两个角色,一是config server,二是config client。
二、创建Config Server
创建一个spring-cloud项目,取名为config-server,支持maven和gradle,这里配置中心使用svn远程库上的配置:
1.maven的pom.xml中引入依赖:
<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>config-server</groupId> <artifactId>config-server</artifactId> <packaging>jar</packaging> <name>dmw-config</name> <description>配置中心</description> <!--使用最新版的spring-boot -> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.10.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>Edgware.SR1</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.tmatesoft.svnkit</groupId> <artifactId>svnkit</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-undertow</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> </dependencies> <!--依赖管理,用于管理spring-cloud的依赖,其中Edgware.SR1是版本号--> <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> <finalName>dmw-config</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
2.gradle build.gradle依赖:
buildscript { ext { springBootVersion = '1.5.10.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } apply plugin: 'java' apply plugin: 'eclipse-wtp' apply plugin: 'org.springframework.boot' group = 'com.config' version = '' sourceCompatibility = 1.8 repositories { maven {url 'http://maven.aliyun.com/nexus/content/groups/public/'} mavenCentral() } configurations { providedRuntime } ext { springCloudVersion = 'Edgware.SR1' if(!project.hasProperty("profile")){ profile='test' } } sourceSets { main { resources { srcDir "env/${profile}" } } } dependencies { compile('org.springframework.cloud:spring-cloud-config-server'){ exclude module: 'spring-boot-starter-tomcat' } compile('org.springframework.cloud:spring-cloud-starter-eureka') runtime('org.springframework.boot:spring-boot-starter-undertow') testCompile('org.springframework.boot:spring-boot-starter-test') compile('org.tmatesoft.svnkit:svnkit') compile('org.springframework.boot:spring-boot-starter-actuator') } dependencyManagement { imports { mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}" } }
新建入口类BootApplication:
mport org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.config.server.EnableConfigServer; @SpringBootApplication @EnableConfigServer public class ConfigServerApplication { public static void main(String[] args) { SpringApplication.run(ConfigServerApplication .class, args); } }application.yml:
spring: profiles: #使用svn这里必须指定为subversion,否则会报错,因为config默认配置的git active: subversion cloud: config: server: svn: # 配置svn仓库地址 uri: svn://192.168.1.1/config-repo # 配置svn访问账号 username: test # 配置svn访问密码 password: test #配置svn项目配置文件所在目录 default-label: profiles服务端完成,如果在svn上的config-repo的profiel目录下有一个application-dev.yml配置文件,则可以通过http://loalhost:8080/application-dev.yml访问获得配置信息,该项目没有指定端口,所以默认8080,
相关推荐
在微服务架构中,Spring Cloud Config 是一个强大的分布式配置中心,它允许开发人员将应用程序的配置存储在远程仓库中,并且可以在运行时动态地管理和更新这些配置,无需重启应用。这个特性对于大型分布式系统来说...
spring-cloud-config是用来集中管理分布式的配置问题,不同环境不同配置,动态化的配置更新,分环境部署比如dev/test/prod/beta/release,运行期间动态调整配置,不再需要在每个服务部署的机器上编写配置文件,服务...
Spring Cloud Config是Spring Cloud全家桶中的一个组件,它主要用于实现分布式系统中的配置管理。在微服务架构下,系统通常被拆分成许多个小的微服务,每个服务都有自己的配置文件。当配置文件频繁更改或不同服务...
6. **分布式配置**:SpringCloud Config是SpringCloud提供的分布式配置服务器,它支持配置的集中化存储和版本控制,使得开发者可以在不重启服务的情况下更新配置,提高了运维效率。Config Server可以与Git仓库集成,...
2.服务端为分布式配置中心,是一个独立的微服务应用;客户端为分布式系统中的基础设置或微服务应用,通过指定配置中心来管理相关的配置。 3.Spring Cloud Config 默认采用 Git 存储配置信息,天然支持对配置信息的...
Spring Cloud Config 是一个用于在分布式系统中管理外部配置的工具,它支持服务发现和集中式配置。这个框架允许你集中存储、管理和版本化你的应用配置,使得开发人员可以在不重启应用的情况下更新配置。本文将深入...
SpringCloud Config 分布式配置中心 SpringCloud Bus 消息总线 SpringCloud Stream 消息驱动 SpringCloud Sleuth 分布式请求链路跟踪 SpringCloud Alibaba入门简介 SpringCloud Alibaba Nacos 服务注册和配置...
Spring Cloud Config 分布式配置中心的高可用问题解决方案 在之前的文章中,我们实现了配置文件统一管理的功能,但是在实现的过程中,我们仅仅使用了一个 Server,如果这个 Server 挂掉的话,整个配置中心就会不...
5. **配置管理**:Spring Cloud Config 提供集中式的配置管理,服务可以根据需要动态获取或更新配置。 6. **调用链跟踪**:Zipkin 或 Sleuth 可以帮助我们追踪跨服务的请求,对问题定位提供强有力的支持。 7. **...
Spring Cloud Config 是一个用于微服务架构中的外部配置中心,它允许开发者在运行时管理应用程序的配置。这个框架基于Git或Subversion等版本控制系统,提供了一种集中化、动态化的配置方式,使得微服务可以从中央...
在深入研究源代码`springcloud-chapter07-master`时,你可以学习到如何设置Config Server和Config Client,以及如何在微服务之间进行通信以获取配置。这将涉及到Spring Boot的启动类配置、Spring Cloud的相关依赖、...
springcloud config分布式配置中心,需要注意gitee上创建的文件格式,特别注意不然 config client启动的时候就会报错误 说@value("${name}")的值找不到
在分布式配置方面,SpringCloud Config提供了一个集中式的配置服务器,允许我们在运行时更新应用程序的配置,无需重启服务。此外,SpringCloud Bus可以将配置更改实时推送到所有相关服务,确保一致性。 接下来,...
在本篇学习笔记中,我们将深入探讨Spring Cloud Config——一个强大的配置管理工具,它使得在分布式系统中管理和分发配置变得简单。Spring Cloud Config支持服务器端和客户端两种组件,允许我们在开发过程中动态地...
SpringCloud是基于Spring Boot的微服务开发工具集,它为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)中快速构建...
- 客户端是Spring Cloud Config的使用者,每个需要使用配置的微服务都会包含Config Client。 - 客户端通过HTTP API与Config Server通信,获取当前环境下的配置信息。 - 当客户端启动时,会自动向Config Server...
Spring Cloud分布式配置中心Config是微服务架构中解决多环境配置管理的一个重要工具。在传统的开发过程中,不同环境(如开发、测试、生产)的配置管理往往由开发人员手动处理,或者通过复杂的流程来确保配置的正确性...
Spring Cloud Config是Spring Cloud中的配置中心模块,用于管理应用程序的配置信息。在生产环境中部署配置中心时,我们需要确保它是一个高可用的应用。Spring Cloud Config提供了两种方式来实现服务端的高可用:传统...
结合前面我们把路由规则写在项目的配置文件中.现在把结合SpringCloud-config 分布式配置中心,让配置文件更加的灵活。使用actuator 手动刷新,后面在说springcloud 消息总线 实现动态刷新配置。
综上所述,Spring Cloud Config 是微服务架构中不可或缺的一部分,它极大地简化了分布式系统中配置管理的复杂性,提高了系统的灵活性和可维护性。通过使用这个工具,我们可以更好地实现配置的集中管理和动态更新,...