一、简介git
高可用的分布式配置中心,即将配置中心作成一个微服务,将其集群化,从而达到高可用。config-server和config-client向eureka-server注册,且将config-server多实例集群化部署github
二、改造config-server
web
一、咱们使用以前建立的eureka-server工程做为注册中心,端口8761spring
二、咱们将config-server工程,看成eureka-client,须要在pom.xml中引入spring-cloud-starter-netflix-eureka-client依赖,代码以下apache
<?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>com.lishun</groupId> <artifactId>config-server</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>config-server</name> <description>Demo project for Spring Boot</description> <parent> <groupId>com.lishun</groupId> <artifactId>cloud</artifactId> <version>1.0-SNAPSHOT</version> <relativePath/> <!-- lookup parent from repository --> </parent> <dependencies> <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-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> </dependencies> </project>
三、在工程的启动类ConfigServerApplication上加上注解@EnableEurekaClient,开启eurekaclient的功能,代码以下bootstrap
@EnableEurekaClient @EnableConfigServer @SpringBootApplication public class ConfigServerApplication { public static void main(String[] args) { SpringApplication.run(ConfigServerApplication.class, args); } }
四、在application.properties配置文件中,指定服务注册地址,代码以下浏览器
spring.application.name=config-server
server.port=8889
#spring.cloud.config.server.native.search-locations= classpath:/shared
#spring.profiles.active=native
spring.cloud.config.server.git.uri=https://github.com/lis-ylfy/config-test/
spring.cloud.config.server.git.searchPaths=lis
spring.cloud.config.label=master
spring.cloud.config.server.git.username=
spring.cloud.config.server.git.password=
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/
三、改造config-clientapp
一、将config-client也做为eureka-client,在pom.xml文件中加入spring-cloud-starter-netflix-eureka-client依赖,在工程的启动类上加上注解@EnableEurekaClient,开启eurekaclient的功能负载均衡
二、在工程的配置文件bootstrap.properties中指定服务的注册地址为http://localhost:8761/eureka,指定向serviceId为config-server的配置服务读取配置文件,代码以下maven
spring.application.name=config-client
spring.cloud.config.uri= http://localhost:8888/
spring.cloud.config.fail-fast=true
spring.profiles.active=dev
server.port=8881
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/
spring.cloud.config.discovery.enabled=true
spring.cloud.config.discovery.serviceId=config-server
三、依次启动 eureka-server、 config-server 和 config-client 工程,注意这里须要 config-server 启动成功井且向 eureka-server 注册完成后,才能启动 config-client,不然 config-client 找不到config-server 。
四、访问http://localhost:8881/hi,浏览器显示:
config-test
五、实现config-server的高可用
用idea开启多个config-server实例,端口分别为8888和8889,而后再开启多个config-client实例,从控制能够看到它轮流从8888和8889两个config-server中读取了配置文件,并实现了负载均衡。