第七章 Spring Cloud 分布式集群配置

上一篇讲了如何从配置中心读取文件,配置中心如何从git当中读取文件获得属性。当服务实例有成百上千个的时候,一个配置中心可能承载不了压力,这个时候我们可以把配置中心做成集群,从而分散压力,做到负载均衡,达到高可用的目的。

架构图如下:
在这里插入图片描述
本篇文章基于上一篇文章进行实现,一共创建了4个微服务程序spring-cloud-eureka-server、spring-cloud-config-1、spring-cloud-config-2和spring-cloud-config-client。

第一步:创建Eureka Server注册中心

Eureka Server注册中心的创建不再作过多的赘述,之前已经有详细的介绍,具体请查看 第二章 Spring Cloud 服务的注册与发现(Eureka Server)

第二步:改造Config Server(spring-cloud-config)

我们将“spring-cloud-config”修改为“spring-cloud-config-1”,因为服务配置中心只有一个的话,体现不了集群的特性,因此我们需要建两个服务配置中心“spring-cloud-config-1”和“spring-cloud-config-2”,两个项目除了项目名和端口不一样意外,其它都一样,我们拿其中一个作详细介绍。
在其pom.xml文件加上EurekaClient的起步依赖spring-cloud-starter-netflix-eureka-client,代码如下:

    <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>

第三步:修改application.yml

指定服务注册地址:http://localhost:8080/eureka/

spring:
  application:
    name: spring-cloud-config
  cloud:
    config:
      server:
        git:
          username: #1
          password: #2
          uri: https://github.com/runday/spring-cloud-brimen-file-config #3
          search-paths: /brimen #4
          default-label: master #5

server:
  port: 8089
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8080/eureka/

#1、配置git的用户名(公共仓库不需要配置,可放心使用)
#2、配置git的密码
#3、配置git的地址
#4、配置访问路径
#5、配置分支,默认为master分支

第四步:在入口类application添加@EnableEurekaClient

package com.brimen.springcloudconfig1;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

@SpringBootApplication
@EnableEurekaClient
@EnableConfigServer
public class SpringCloudConfigApplication1 {
    public static void main(String[] args) {
        SpringApplication.run(SpringCloudConfigApplication1.class, args);
    }
}

第五步:改造Config Client(spring-cloud-config-client)

将其注册微到服务注册中心,作为Eureka客户端,需要pom文件加上起步依赖spring-cloud-starter-netflix-eureka-client,代码如下:

    <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-starter-config</artifactId>
        </dependency>
    </dependencies>

第六步:在bootstrap.properties指定服务注册地址

spring.application.name=spring-cloud-config-client
server.port=8091

#1、指定服务注册中心的地址
eureka.client.service-url.defaultZone=http://localhost:8080/eureka/

#2、可以从配置中心读取文件
spring.cloud.config.discovery.enabled=true

#3、指定可以从服务注册中心读取的服务id
spring.cloud.config.discovery.serviceId=spring-cloud-config
#4、指定环境
spring.cloud.config.profile=dev

第七步:启动项目

依次启动spring-cloud-eureka-server、spring-cloud-config-1、spring-cloud-config-2和spring-cloud-config-client。

第八步:通过接口读取git当中配置的属性

访问:http://localhost:8091/getvalue
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_24630433/article/details/87621388