SpringCloud+config配置

SpringCloud config 项目是一个解决分布式系统的配置管理方案

组织架构

默认情况 SVN 服务器的端口是8888

查看源代码如下: 默认端口为8888 此时的网络拓扑是这样的

Server 端和Client 端是在同一个机器上 如果不再同一个机器上则可以使用自定义的端口配置

默认情况下config server是使用git来作为配置中心的,由于还是有许多公司还是用svn来作为版本管理工具,幸好config server服务也支持svn配置,下面就来试验一下

Config-Server端要添加两个依赖的 jar 包

 <dependency>  

           <groupId>org.springframework.cloud</groupId>  

            <artifactId>spring-cloud-config-server</artifactId>        

 </dependency>

<dependency>  

            <groupId>org.tmatesoft.svnkit</groupId>  

            <artifactId>svnkit</artifactId>  

 </dependency>  

  

新建一个config-server项目,pom文件:

[html] view plain copy

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  3.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
  4.     <modelVersion>4.0.0</modelVersion>  
  5.   
  6.     <groupId>com.example</groupId>  
  7.     <artifactId>config-server</artifactId>  
  8.     <version>0.0.1-SNAPSHOT</version>  
  9.     <packaging>jar</packaging>  
  10.   
  11.     <name>config-server</name>  
  12.     <description>Demo project for Spring Boot</description>  
  13.   
  14.     <parent>  
  15.         <groupId>org.springframework.boot</groupId>  
  16.         <artifactId>spring-boot-starter-parent</artifactId>  
  17.         <version>1.5.7.RELEASE</version>  
  18.         <relativePath/> <!-- lookup parent from repository -->  
  19.     </parent>  
  20.   
  21.     <properties>  
  22.         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
  23.         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>  
  24.         <java.version>1.8</java.version>  
  25.         <spring-cloud.version>Dalston.SR3</spring-cloud.version>  
  26.     </properties>  
  27.   
  28.     <dependencies>  
  29.         <dependency>  
  30.             <groupId>org.springframework.cloud</groupId>  
  31.             <artifactId>spring-cloud-config-server</artifactId>  
  32.         </dependency>  
  33.         <dependency>  
  34.             <groupId>org.springframework.boot</groupId>  
  35.             <artifactId>spring-boot-starter-actuator</artifactId>  
  36.         </dependency>  
  37.         <dependency>  
  38.             <groupId>org.springframework.cloud</groupId>  
  39.             <artifactId>spring-cloud-starter-eureka</artifactId>  
  40.         </dependency>  
  41.         <!-- https://mvnrepository.com/artifact/org.tmatesoft.svnkit/svnkit -->  
  42.         <dependency>  
  43.             <groupId>org.tmatesoft.svnkit</groupId>  
  44.             <artifactId>svnkit</artifactId>  
  45.         </dependency>  
  46.   
  47.         <dependency>  
  48.             <groupId>org.springframework.boot</groupId>  
  49.             <artifactId>spring-boot-starter-test</artifactId>  
  50.             <scope>test</scope>  
  51.         </dependency>  
  52.     </dependencies>  
  53.   
  54.     <dependencyManagement>  
  55.         <dependencies>  
  56.             <dependency>  
  57.                 <groupId>org.springframework.cloud</groupId>  
  58.                 <artifactId>spring-cloud-dependencies</artifactId>  
  59.                 <version>${spring-cloud.version}</version>  
  60.                 <type>pom</type>  
  61.                 <scope>import</scope>  
  62.             </dependency>  
  63.         </dependencies>  
  64.     </dependencyManagement>  
  65.   
  66.     <build>  
  67.         <plugins>  
  68.             <plugin>  
  69.                 <groupId>org.springframework.boot</groupId>  
  70.                 <artifactId>spring-boot-maven-plugin</artifactId>  
  71.             </plugin>  
  72.         </plugins>  
  73.     </build>  
  74.   
  75.   
  76. </project>  

config-server

这里要注意由于使用的是svn来保存配置,所以还要引入svnkit依赖,这里还引入了eureka依赖,因为我们将config-server配置成了高可用,即config-server也会作为一个服务注册到注册中心去,到时候客户端可以通过服务Id来自动发现一组config-server服务负载均衡的访问。

SpringCloud -client 配置文件中的 参数设置详解:

spring.cloud.config.uri=xxxx 一般在集群中使用

spring.cloud.config.discovery.service-id=service-id 来替代

spring.cloud.config.name=testapplication  

spring.cloud.config.profile=dev

spring.application.name: 对应配置文件规则中的 {application} 部分。

• spring.cloud.config.profile: 对应配置文件规则中的 {profile} 部分。

• spring.cloud.con巨g.label: 对应配置文件规则中的 {label} 部分。

• spring.cloud.config.uri: 配置中心 config-server 的地址。

开发总结:

在一个SpringBoot工程中的resource 文件中添加两个配置文件

application.properties 和 bootstrap.propertiest 程序默认加载的是 application.properties

配置文件

SpringBoot 版本1.5.11版本

########使用SVN管理配置中心

spring.application.name=config-server

spring.profiles.active=subversion

eureka.client.service-url.defaultZone=http://localhost:1111/eureka/

#############默认情况Config的Server端的端口为8888

server.port=8888

spring.cloud.config.server.svn.uri=https://admin-pc:5678/svn/springconfig/

spring.cloud.config.server.svn.default-label=config

spring.cloud.config.server.svn.search-paths=${application}

spring.cloud.config.server.svn.username=admin

spring.cloud.config.server.svn.password=admin

pom.xml配置文件中的核心内容:

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-config-server</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-eureka</artifactId>

</dependency>

<dependency>

<groupId>org.tmatesoft.svnkit</groupId>

<artifactId>svnkit</artifactId>

<version>1.8.10</version>

</dependency>

Client 端pom.xml 文件

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<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.retry</groupId>

<artifactId>spring-retry</artifactId>

</dependency>

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

</dependency>

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>druid</artifactId>

<version>1.0.28</version>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-data-jpa</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-jdbc</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-tomcat</artifactId>

</dependency>

bootstrap.properties 配置文件中的内容

spring.application.name=testapplication

spring.cloud.config.profile=test

spring.cloud.config.label=config

#spring.cloud.config.discovery.enabled=true

spring.cloud.config.discovery.service-id=config-server

#spring.cloud.config.uri=http://192.168.191.4:8099

server.port=8082

eureka.client.service-url.defaultZone=http://localhost:1111/eureka/

猜你喜欢

转载自blog.csdn.net/IT_liuzhiyuan/article/details/88686635