一、简介
为了方便统一管理配置文件管理,使用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,
相关推荐
SpringCloud——分布式配置中心(Spring Cloud Config)之高可用的分布式配置中心
spring-cloud-config是用来集中管理分布式的配置问题,不同环境不同配置,动态化的配置更新,分环境部署比如dev/test/prod/beta/release,运行期间动态调整配置,不再需要在每个服务部署的机器上编写配置文件,服务...
SpringCloud之七 分布式配置中心SpringCloudConfig.pdf,是微服务中配置的处理使用
2.服务端为分布式配置中心,是一个独立的微服务应用;客户端为分布式系统中的基础设置或微服务应用,通过指定配置中心来管理相关的配置。 3.Spring Cloud Config 默认采用 Git 存储配置信息,天然支持对配置信息的...
Spring Cloud之Config分布式配置应⽤
SpringCloud Config 分布式配置中心 SpringCloud Bus 消息总线 SpringCloud Stream 消息驱动 SpringCloud Sleuth 分布式请求链路跟踪 SpringCloud Alibaba入门简介 SpringCloud Alibaba Nacos 服务注册和配置...
springcloud config分布式配置中心,需要注意gitee上创建的文件格式,特别注意不然 config client启动的时候就会报错误 说@value("${name}")的值找不到
本文给大家介绍spring cloud config分布式配置中心的高可用问题,通过整合Eureka来实现配置中心的高可用,需要的朋友参考下本
主要介绍了SpringCloud之分布式配置中心Spring Cloud Config高可用配置实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
结合前面我们把路由规则写在项目的配置文件中.现在把结合SpringCloud-config 分布式配置中心,让配置文件更加的灵活。使用actuator 手动刷新,后面在说springcloud 消息总线 实现动态刷新配置。
Spring Cloud(十)高可用的分布式配置中心 Spring Cloud Config 中使用 Refresh spring-cloud-config-bus-rabbitMQ Spring Cloud(十一)高可用的分布式配置中心 Spring Cloud Bus 消息总线集成(RabbitMQ)
Spring Cloud Bus配合Spring Cloud Config使用可以实现配置的动态刷新 spring cloud bus能管理和传播分布式系统间的消息,就像分布式执行器,可用于广播状态更改、时间推送等,也可以当做微服务间的通信通道 spring ...
springcloud入门代码基于Spring Cloud实现的分布式配置中心源代码 从Config Server 本地获取配置文件,注意 Client 获得 Server配置数据
主要介绍了Spring Cloud Config实现分布式配置中心,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
22.分布式配置中心Spring Cloud Config初窥 23.Spring Cloud Config服务端配置细节(一) 24.Spring Cloud Config服务端配置细节(二)之加密解密 25.Spring Cloud Config客户端配置细节 26.Spring Cloud Bus之...
13.SpringCloud Config分布式配置中心 14.SpringCloud Bus 消息总线 15.SpringCloud Stream 消息驱动 16.SpringCloud Sleuth 分布式请求链路跟踪 17. Apollo配置中心 18.SpringCloud Alibaba 入门简介 19.Spring...
使用spring cloud代建完整的分布式微服务架构,包括spring security oauth2权限控制,docker,config动态修改配置文件,eureka服务发现,zuul路由,实现服务和服务之间的调用。等等
详细讲解 微服务技术架构概述 euraka注册中心原理 服务调用工具rest与fegin SpringCloud调用服务原理剖析...搭建SpringCloud分布式配置中心 服务雪崩效应解决办法 使用hystrix实现服务降级、熔断机制、解决雪崩效应
内容包括Eureka服务的注册发现及Eureka集群的实现、客户端负载均衡Ribbon、接口式负载均衡Feign、服务熔断与服务降级Hystrix、Hystrix dashboard断路器监控、统一路由网关Zuul配置、springcloud config分布式远程...
application.yml:结果依次启动Eureka注册中心、Config Server、User Service:先查看Config Server里的配置