学科分类
目录
Spring Cloud

搭建高可用的Config Server

到目前为止,我们已经学会了Congfig Client如何从配置中心Config Server的本地仓库和Git远程仓库读取配置文件。当服务实例很多时,所有的服务实例需要同时从配置中心Config Server读取配置文件,这时可以考虑将配置中心Config Server做成一个集群化的微服务,从而达到高可用。将Config Server和Config Client注册在Eureka Server,Config Server多实例集群部署的架构如图1所示。

图1 Config Server集群架构图

下面基于7.2.1小节进行改造,搭建一个高可用的Config Server集群,具体步骤如下:

1、 构建Eureka Server

为了方便测试效果,我们这里新建一个eureka-server项目作为Config Server的注册中心,其搭建过程与第2章2.2小节一致。不过这里设置的eureka-server端口号是

8761。

2、 改造Config Server

(1)Config Server作为服务器,需要在工程中的pom.xml配置文件中加入 Eureka Client起步依赖,代码如下所示。

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

(2)在项目的启动类ConfigServerApplicatio添加@EnableEurekaServer和 @EnableConfigServer注解,开启Eureka Server和Config Server功能,如例1所示。

例1 config-server\src\main\java\com\itheima\configserver\ConfigServerApplication.java

 1     import org.springframework.boot.SpringApplication;
 2     import org.springframework.boot.autoconfigure.SpringBootApplication;
 3     import org.springframework.cloud.config.server.EnableConfigServer;
 4     import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
 5     @SpringBootApplication
 6     @EnableConfigServer
 7     @EnableEurekaClient
 8     public class ConfigServerApplication {
 9         public static void main(String[] args) {
 10             SpringApplication.run(ConfigServerApplication.class, args);
 11         }
 12     }

(3)修改配置文件application.yml文件,为Config Server指定服务注册的地址等信息,如例1所示。

例2 config-server\src\main\resources\application.yml

 1 spring :
 2             cloud:
 3                config:
 4                  server:
 5                     native:
 6                        search-locations: classpath:/shared
 7              profiles:
 8                 active: native
 9              application:
 10            name: config-server
 11     server:
 12       port: 8769
 13     eureka:
 14       client:
 15         serviceUrl:
 16           defaultZone: http://localhost:8761/eureka

3、 改造Config Client

(1)在pom文件中加入Eureka Client起步依赖。在项目启动类上添加

@EnableEurekaClient注解启动Eureka Client功能。

(2)在配置文件bootstrap.yml加入指定服务注册地址等相关配置,具体代码如例3示。

例3 config-client\src\main\resources\bootstrap.yml

 1     spring:
 2       application:
 3         name: config-client
 4       cloud:
 5         config:
 6           uri: http://localhost:8769
 7           fail-fast: true
 8       profiles:
 9         active: dev

(3)依次启动eureka-server、config-server和config-client。启动时需要注意,只有等待eureka-server注册成功后,才可以启动config-client。

(4)使用浏览器访问http://localhost:8762/foo,查看效果。

4、 搭建Config Server集群

搭建高可用的Config Server服务只需要将Config Server多实例部署,使用Spring Initializr方式创建一个名称为config-server2的Config Server项目,设置端口号为8768,服务名也为config-server,其他配置信息和搭建过程与config-server项目一致。

5、 测试运行

使用浏览器访问http://localhost:8761,效果如图2所示。

图2 高可用的Config Server注册中心

在图2中,Eureka注册中心注册的CONFIG-SERVER共有两个实例,端口号分别为8768和8769,说明我们已经成功实现高可用的Config Server。

点击此处
隐藏目录