一、Spirng Cloud Config的用户认证

前面配置的Config Server是允许匿名访问的,为了防止配置内容的外泄,应该保护Config Server的完全。

1.1、实现

a、复制项目config-server,重命名为config-server-auth(端口5020)

b、添加以下依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

c、在application.yml中添加如下:

security:
  basic:
    enabled: true
  user:
    name: zhangsan  # 登录用户名
    password: 123   # 登录密码

这样就为Config Server添加了基于HTTP basic的认证。如果不配置这段,账号默认是user,密码是一个随机数,此随机数会在启动的时候打印出来

d、测试,访问http://localhost:5020/ 

 wKioL1mo_5ag1qCBAABEURDmndw542.png

1.2、Config Client连接

config Client有两种方式使用需用户认证的Config Server

方式1:使用curl风格的URL

spring:
  cloud:
    config:
      # config Server的地址
      uri: http://zhangsan:123@localhost:5020/

方式2:指定Config Server的账号和密码

spring:
  cloud:
    config:
      # config Server的地址
      uri: http://localhost:5020/
      username: zhangsan
      password: 123

二、Config Server的高可用

高可用的Config Server集群,包括依赖的Git仓库的高可用以及RabbitMQ的高可用和Config Server本身的高可用。

2.1、Git仓库的高可用

由于配置内容都存储在Git仓库中,所以要想实现Config Server的高可用,必须有一个高可用的Git仓库。有两种实现方式:

1、使用第三方Git仓库:这种方式非常简单,如GitHub,这些服务本身就是已实现了高可用。

2、自建Git仓库管理系统:使用第三方服务的方式虽然省去了很多烦恼,但是很多场景下,倾向于自建Git仓库管理系统。

2.2、RabbitMQ的高可用

在另博文上有说明过,此处不在多说了。

2.3、Config Server本身的高可用

分两种情况讨论:Config Server未注册到Eureka Server上、Config Server注册到Eureka Server上。

Config Server未注册到Eureka Server上

对于这种情况,Config Server的高可用可借助一个负载均衡器来实现,如下:

 wKiom1mswLnxP3qBAAApFCk2FIE059.png

Config Server注册到Eureka Server上

wKioL1mswarSzMG_AAAwlHkIYT4911.png


只须将Config Server注册到Eureka Server即可。