SpringCloud Config

SpringCloud Config

一、配置中心解决了什么

1.1、服务配置的现状

在微服务系统中,每个微服务不仅仅只有代码,他还需要连接其他资源,例如数据库的配置或功能性的开关等等。
但是随着微服务系统的不断迭代,整个微服务系统可能会成为一个网状结构,这个时候就要考虑整个微服务系统的扩展性、伸缩性、耦合性等等。其中一个很重要的环节就是配置管理的问题。

1.2、常见的配置类型

1.2.1、服务配置
数据库配置、MQ队列配置、redis缓存配置 … …
1.2.2、各类开关
功能开关、业务开关、服务开关 … …
1.2.3、业务配置
模块A、模块B、模块C … …

1.3、常用的配置管理解决方案的缺点

1.硬编码【缺点:需要修改代码、繁琐、风险大】
2.写在properties里面【缺点:在集群环境下,需要替换和重启】
3.写在xml配置文件中,一般和应用一起打包【缺点:需要重新打包和重启】

1.4、为什么要使用spring cloud config 配置中心?

由于常用的配置管理有很大的缺点,故spring cloud config采用了集中式的配置中心来管理每个服务的配置信息。
spring cloud config配置中心,在微服务分布式系统中,采用服务端和客户端来提供可扩展的配置服务。配置中心负责管理所有的服务的各种环境配置文件。配置服务中心默认采用Git的方式存储配置文件,因此我们很容易部署修改,有助于对环境配置进行版本管理。

1.5、spring cloud config 配置中心,它解决了什么问题?

Spring Cloud Config它解决了微服务配置的中心化、版本控制、平台独立、语言独立等问题。
其特性如下:
1.提供服务端和客户端支持(spring cloud config server和spring cloud config client)
2.集中式管理分布式环境下的应用配置
3.基于Spring环境,无缝与Spring应用集成
4.可用于任何语言开发的程序
5.默认实现基于git仓库,可以进行版本管理

二、配置中心服务端

2.1、配置文件命名规则

在这里插入图片描述

三、配置中心客户端

3.1、配置文件使用bootstrap.application

四、配置中心原理

在这里插入图片描述

五、在git端修改配置后,让客户端生效

5.1、添加jar

<!-- 在git端修改配置后,如何让客户端生效 -->
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

5.2、关闭bus-refresh权限拦截

#springboot 默认开启了权限拦截 会导致 /actuator/bus-refresh 出现401,拒绝访问
management.endpoints.web.exposure.include=bus-refresh

5.3、发送POST

@RestController
@RefreshScope
public class HelloController {

    @Value("${server.port}")
    private int port;

    @RequestMapping("index")
    public String index(){
        return "Hello World!,端口:"+port;
    }
}

curl –X POST http://客户端url/bus-refresh

六、安全与加密

6.1、采用对称加密算法(实现敏感数据加密)

6.1.1、对称加密介绍

对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key)。

6.1.2、检查加密环境

检查URL:http://127.0.0.1:9030/encrypt/status
检查结果:{“description”:“No key was installed for encryption service”,“status”:“NO_KEY”}
没有为加密服务安装密钥。

6.1.3、加密环境3步解决方案

第一步:设计密钥KEY
encrypt.key=qixin
第二步:未配置JCE
http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

下载解压后,把jar文件上传到需要安装jce机器上JDK或JRE的security目录下,覆盖源文件即可。
JDK:将两个jar文件放到%JDK_HOME%\jre\lib\security下
JRE:将两个jar文件放到%JRE_HOME%\lib\security下
第三步:spring cloud bug
Dalston.SR4、Dalston.SR3、Dalston.SR2版本不能对配置文件加密,若需要调整到Dalston.SR1
https://github.com/spring-cloud/spring-cloud-config/issues/767
第四步:加密/解密
加密(post请求):http://127.0.0.1:9030/encrypt
解密(post请求):http://127.0.0.1:9030/decrypt
第五步:使用
在这里插入图片描述
在这里插入图片描述

6.2、采用非对称算法(实现敏感数据加密)

6.2.1、使用keytool实现非对称加密
6.2.2、检查加密环境

http://127.0.0.1:9030/encrypt/status

6.2.3、使用

在这里插入图片描述

6.3、配置中心的用户安全认证

6.3.1、添加jar
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-security</artifactId>
</dependency>
6.3.2、配置文件
# 安全认证
#开启基于http basic的安全认证
management.endpoints.web.exposure.include=*
spring.security.user.name=root
spring.security.user.password=root
6.3.3、客户端配置文件

添加《安全保护》用户名与密码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值