spring cloud 版本GreenWich.SR2
1.一般我们把配置上传到git.abcde.com,配置的文件名按照 应用名(spring.application.name)-开发环境(spring.profiles)-分支(不写默认master).yml进行命名。例如xxh-cloud-gateway-dev.yml
2.新建spring cloud config应用,我们可以根据config应用的url+其他应用的name+开发环境+分支进行访问。例如:http://configServerIp:8000/xxh-cloud-gateway/dev/master 就可以看到git服务器上面的配置。
3.我们可以配置多个config应用注册到eureka上面,以便实现高可用。
4.如下是config应用的配置信息
启动类:
package com.abcde.xxh.server.config;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.config.server.EnableConfigServer;
@SpringBootApplication
@EnableConfigServer
@EnableDiscoveryClient
public class xxhCloudConfigApplication {
private static Logger logger = LoggerFactory.getLogger(xxhCloudConfigApplication.class);
public static void main(String[] args) {
logger.debug("xxhCloudConfigApplication:::main:::::starting .::::");
SpringApplication.run(xxhCloudConfigApplication.class, args);
logger.debug("xxhCloudConfigApplication:::main:::::started success..::::");
}
}
application.yml
server:
port: 7000
tomcat:
uri-encoding: UTF-8
xxh:
eureka:
node1: 192.16.50.76
node2: 192.16.50.77
node3: 192.16.50.78
port: 8886
config:
node1: 192.16.50.76
spring:
application:
name: xxh-cloud-config
security:
user:
roles: SUPERUSER
name: admin
password: admin
cloud:
config:
server:
git:
uri: git@git.abcde.com:ccs-xxh/spring-cloud-config.git
ignoreLocalSshSettings: true
#配置Https时可以忽略ssl校验
#skipSslValidation: true
#应用所在的主机使用sshkey-gen产生私钥,在git服务器注册好公钥。
privateKey: |
-----BEGIN RSA PRIVATE KEY-----
111111111111111111111111111111mCwUo8kJXxw0GAaR69GgKulrmQL37afY2
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
-----END RSA PRIVATE KEY-----
timeout: 10
force-pull: true
#间隔多久从git取数据,0标示每次请求都从git取
refreshRate: 0
eureka:
instance:
instance-id: ${xxh.config.node1}:${spring.application.name}:${server.port}
prefer-ip-address: true #解决gateway转发微服务时UnknownHostException的问题
leaseRenewalIntervalInSeconds: 15 #多久向Server发送心跳,服务端默认90秒没有收到心跳请求就剔除服务了。
client:
register-with-eureka: true
fetch-registry: true
registryFetchIntervalSeconds: 15 #从Server获取registry信息的时间间隔,开发环境可以设置长一点,避免日志打印
service-url:
defaultZone: http://admin:admin@${xxh.eureka.node1}:${xxh.eureka.port}/eureka,http://admin:admin@${xxh.eureka.node2}:${xxh.eureka.port}/eureka,http://admin:admin@${xxh.eureka.node3}:${xxh.eureka.port}/eureka
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">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.abcde.xxh</groupId>
<artifactId>xxh-cloud-config</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>xxh-cloud-config</name>
<description>xxh-cloud-config</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.SR2</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<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-actuator</artifactId>
</dependency>
<!-- 集成eureka -->
<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-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</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>