一、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/
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的高可用可借助一个负载均衡器来实现,如下:
Config Server注册到Eureka Server上
只须将Config Server注册到Eureka Server即可。