【微服务笔记14】微服务组件之Config配置中心高可用环境搭建

这篇文章,主要介绍微服务组件之Config配置中心高可用环境搭建。

目录

一、高可用Config配置中心

1.1、高可用配置中心介绍

1.2、搭建Eureka注册中心

1.3、搭建ConfigServer服务端

(1)引入依赖

(2)添加配置文件

1.4、搭建ConfigClient客户端

(1)引入依赖

(2)添加配置文件

(3)编写测试类

(4)运行测试


一、高可用Config配置中心

1.1、高可用配置中心介绍

前一篇文章介绍了Config配置中心基础环境的搭建,这种环境存在一个问题,那就是一旦Config Server服务端发生故障之后,那么整个微服务系统就将无法使用,也就是没办法实现微服务的高可用。如何解决Config配置中心的高可用问题呢???

  • 要解决Config配置中心的高可用性,可以结合Eureka注册中心实现。

一台Config Server服务没办法保证高可用,那就多搭建几台Config Server服务,然后将这些服务全部注册到Eureka注册中心里面,Config Client客户端不需要和Config Server服务端直接通信,而是根据服务名称,从Eureka注册中心获取到具体的Config Server服务地址,实现配置信息的同步,大致如下图所示:

知道了高可用Config配置中心的搭建环境,下面就开始动手搭建一个高可用环境。

1.2、搭建Eureka注册中心

这里需要使用到Eureka注册中心,所以需要搭建一个高可用的Eureka注册中心环境,可以参考我之前的文章。

【微服务笔记03】微服务组件之Eureka注册中心高可用集群环境搭建

或者为了简单,也可以只使用一台Eureka注册中心,为了方便,这篇文章我就采用单台Eureka的方式。

1.3、搭建ConfigServer服务端

这里创建两台Config Server配置中心服务,创建的方式和前一篇文章是一样的,只需要引入config server依赖,eureka-client配置中心客户端依赖即可。

(1)引入依赖

<!-- 引入 eureka 客户端依赖 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!-- 引入 config-server 服务端依赖 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
</dependency>

(2)添加配置文件

server:
  port: 18888

# 添加 config server 服务端配置信息
spring:
  application:
    name: config-cluster-server
  cloud:
    config:
      server:
        git:
          uri: https://gitcode.net/qq_39826207/config-demo.git # Git仓库的地址
#          username: # Git仓库的登录用户名称
#          password: # Git仓库的登录密码
#          default-label: # 默认访问的分支名称
#          search-paths: # 搜索的根目录,从仓库中的哪个目录中开始查找配置文件

# eureka 配置
eureka:
  instance:
    hostname: ${spring.application.name}
    prefer-ip-address: true # 开启采用 IP 注册形式
    # ${spring.cloud.client.ip-address} 这个属性可以获取到当前机器的 IP 地址
    instance-id: ${spring.cloud.client.ip-address}:${server.port} # 设置当前服务的实例ID,采用:IP+端口形式
  client:
    register-with-eureka: true # 是否将自己注册到eureka注册中心
    fetch-registry: true # 是否从eureka注册中心获取注册信息
    service-url:
      defaultZone: http://localhost:8761/eureka/ # eureka服务端的地址

到这里,Config Server服务端基本上就搭建好了。

1.4、搭建ConfigClient客户端

Config Client客户端,也就是我们自己编写的那些微服务应用,需要从Config Server服务端获取配置信息,但是现在不需要直接和Config Server进行交互,而是通过Eureka注册中心来获取配置信息。

(1)引入依赖

<!-- 引入 web 依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 引入 eureka 客户端依赖 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!-- 引入 config client 依赖 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-client</artifactId>
</dependency>

(2)添加配置文件

  • 在bootstrap.yml配置文件中,添加如下内容:
# 添加 config client 客户端配置
spring:
  cloud:
    config:
      name: config-client # 从 Git 仓库获取的配置文件名称
      # 从注册中心获取配置信息,这里的 uri 就不需要配置啦
#      uri: http://localhost:9999 # Config Server服务端的地址
      label: master # 从哪个分支获取
      profile: dev # 获取哪个环境下的配置文件
      # 从注册中心获取配置信息
      discovery:
        enabled: true # 开启服务发现的功能,这里也就是支持eureka的功能
        service-id: config-cluster-server # config server服务端的微服务应用名称

(3)编写测试类

package com.gitee.demo.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @version 1.0.0
 * @Date: 2023/4/13 21:39
 * @Copyright (C) ZhuYouBin
 * @Description:
 */
@RestController
@RequestMapping("/api/config")
public class ConfigController {

    @Value("${server.port}")
    private int port;
    @Value("${spring.application.name}")
    private String appName;

    @GetMapping("/client")
    public String configDemo() {
        return "当前应用名称是: " + appName + ", 启动端口是: " + port;
    }
}

(4)运行测试

依次启动eureka注册中心、两个config server服务、一个config client服务,浏览器访问【localhost:26251/api/config/client】,看到如下内容,就说明搭建成功啦(注意:其实config client能够正常启动就已经说明搭建成功啦)。

到此,Config配置中心高可用环境就搭建完啦。

综上,这篇文章结束了,主要介绍微服务组件之Config配置中心高可用环境搭建。

猜你喜欢

转载自blog.csdn.net/qq_39826207/article/details/130169629