在传统的应用中,我们的配置文件都是放在项目中,这个影响不大。但是在一个微服务架构的系统中,我们的微服务可能存在几十上百个,并且每个小的微服务可能又部署在多台机器上,那么这个时候如果我们的配置文件在都放在具体的微服务中,那么就不好进行维护了,因此我们需要将服务中的配置文件单独抽取出来,集中管理。spring cloud config 可以为我们做到配置的集中管理,动态刷新配置等。当然除了spring cloud config 还有其它的也可以实现配置的集中管理,此处简单的来看一下 spring cloud config 的配置。

实现功能

  1、config server 端的编写并注册到eureka上
    2、config server 端增加 basic 认证
    3、config server 路径查找,searchPaths 参数
    4、配置项进行对称加密处理
    5、其它的一些配置见具体的配置文件上
    6、客户端的快速失败
    7、config server 的一些加密和解密端点

注意:

     1、config server 和 config client 的配置文件都需要写在 bootstrap.yml 配置文件中

     2、启用配置加密时,需要从 oracle 官网下载 JCE ,并覆盖在 jdk/jre/lib/security 目录中

|- Java 6 JCE

|- Java 7 JCE

|- Java 8 JCE

代码结构

配置文件的访问路径

config server端访问路径

   例如:http://configer_server:port/{application}-{profile}.properties

http://localhost:8301/product-provider-config-client-8302-dev.properties

{application}   --->  product-provider-config-client-8302

  {profile}           --->  dev

  {label}              --->  master 没有指定默认就是 master 分支(此处指的是git的分支)。

即最终的配置的值product-provider-config-client-8302.propertiesproduct-provider-config-client-8302-dev.properties合并的值。

在 github 上创建一个仓库,作为配置存放的地方

配置服务器服务端编写

1、config server端增加basic认证,需要引入 spring security

2、由于引入了spring security 所以需要放行 /encrypt/status,/encrypt/**,/decrypt/** 这些端点,便于测试

3、配置服务器的配置放置在 git 服务器上,如果是在私有仓库,那么需要配置 username和password的值

4、默认情况下是第一次访问配置的时候从 git 服务器上 clone 下配置,修改成程序一启动就拉取配置

5、指定 git 配置存在在本地的路径

6、启用配置的对称加密

|- encrypt.key 这个值必须配置bootstrap.yml 配置文件中,否则不生效

|- 使用 post 访问 http://config_server_host:port/encrypt 请求body中放入 需要加密的字符串,访问得到加密的值。  server.port={cipher}459c0c93ceab39c1924bb5addf72f03dc5eedfed7edac44851ecb0a1a1e888c9

1、依赖的引入,主要引入 config server 和 spring security 的依赖

2、启动类上增加 @EnableConfigServer 注解

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

3、配置文件 bootstrap.yml 的编写


   此处启用加密,需要将上方注意事项中的 JCE 下载下来,并覆盖在 JDK/jre/lib/security 目录中

加密后里面的配置的写法:

server:
port: '{cipher}459c0c93ceab39c1924bb5addf72f03dc5eedfed7edac44851ecb0a1a1e888c9'

配置客户端的编写,即具体的微服务配置

1、依赖的引入,主要是 config

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>

2、bootstrap/yml 配置文件的编写

配置及运行结果

完整代码

config server 和 config client 演示代码: https://gitee.com/huan1993/spring-cloud-parent/tree/master/config

spring cloud config的使用的更多相关文章

  1. spring cloud config 入门

    简介 Spring cloud config 分为两部分 server client config-server 配置服务端,服务管理配置信息 config-client 客户端,客户端调用serve ...

  2. Spring Cloud Config

    Spring Cloud Config provides server and client-side support for externalized configuration in a dist ...

  3. Spring Cloud官方文档中文版-Spring Cloud Config(上)

    官方文档地址为:http://cloud.spring.io/spring-cloud-static/Dalston.SR2/#spring-cloud-feign 文中例子我做了一些测试在:http ...

  4. Spring Cloud官方文档中文版-Spring Cloud Config(下)-客户端等

    官方文档地址为:http://cloud.spring.io/spring-cloud-static/Dalston.SR2/#_serving_alternative_formats 文中例子我做了 ...

  5. SpringCloud的配置管理:Spring Cloud Config

    演示如何使用ConfigServer提供统一的参数配置服务 ###################################################################一.概 ...

  6. 搭建spring cloud config

    很久没更新了,因为不是专职研究spring cloud,因此更新速度得看工作强度大不大,每天能抽出的时间不多,如果更新太慢了,并且有小伙伴看的话,请见谅了. Spring Cloud简介 Spring ...

  7. Spring Cloud Config - RSA简介以及使用RSA加密配置文件

    简介 RSA非对称加密有着非常强大的安全性,HTTPS的SSL加密就是使用这种方法进行HTTPS请求加密传输的.因为RSA算法会涉及Private Key和Public Key分别用来加密和解密,所以 ...

  8. Spring Cloud Config 分布式配置中心使用教程

    一.简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件.在Spring Cloud中,有分布式配置中心组件spring cloud config ...

  9. 【spring实战第五版遇到的坑】第14章spring.cloud.config.uri和token配置项无效

    本文使用的Spring Boot版本为:2.1.4.RELEASE Spring Cloud版本为:Greenwich.SR1 按照书上的做法,在application.yml中配置配置服务器的地址和 ...

  10. .NET Core微服务之基于Steeltoe使用Spring Cloud Config统一管理配置

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 =>  Steeltoe目录快速导航: 1. 基于Steeltoe使用Spring Cloud Eureka 2. 基于Steelt ...

随机推荐

  1. EL-ADMIN学习笔记

    一,支持接口限流,避免恶意请求导致服务层压力过大 常见的限流功能一般有两个关注点: 1.限流原则,即以什么样的条件对请求进行识别以及放行.常见的作法是给予每个调用API的系统不同的唯一编码,用于监控某 ...

  2. 【第四篇】-Git 工作区、暂存区和版本库之Spring Cloud直播商城 b2b2c电子商务技术总结

    Git 工作区.暂存区和版本库 基本概念 我们先来理解下 Git 工作区.暂存区和版本库概念: 工作区:就是你在电脑里能看到的目录. 暂存区:英文叫 stage 或 index.一般存放在 .git  ...

  3. 关于PHP的方法参数类型约束

    在之前的文章PHP方法参数的那点事儿中,我们讲过关于PHP方法参数的一些小技巧.今天,我们带来的是更加深入的研究一下PHP中方法的参数类型. 在PHP5之后,PHP正式引入了方法参数类型约束.也就是如 ...

  4. js 获取转换网址中文参数

    var search = decodeURI(location.search).substr(1); console.log(search); decodeURI 方法返回一个已编码的统一资源标识符 ...

  5. gin 源码阅读(1) - gin 与 net/http 的关系

    gin 是目前 Go 里面使用最广泛的框架之一了,弄清楚 gin 框架的原理,有助于我们更好的使用 gin. 这个系列 gin 源码阅读会逐步讲明白 gin 的原理. gin 概览 想弄清楚 gin, ...

  6. filter_var() 验证邮箱、ip、url的格式 php

    验证邮箱格式的正确与否:你的第一解决方案是什么呢? 不管你们怎么思考的:反正我首先想到的就是字符串查找看是否有@符号: 但是对于结尾的.com或者.net 亦或者.cn等等越来越多的域名验证感觉棘手: ...

  7. P4100-[HEOI2013]钙铁锌硒维生素【矩阵求逆,最大匹配】

    正题 题目链接:https://www.luogu.com.cn/problem/P4100 题目大意 给出\(n\)个线性无关的向量\(A_i\),然后给出\(n\)个向量\(B_i\),求一个字典 ...

  8. easy-rule 学习

    Easyrule是个规则引擎,类似于drools,我们来熟悉一下这个东西 [ ] 一个简单实例规则,这个规则会被一直触发,然后行为是打印helloWorld @Rule(name="hell ...

  9. Kettle学习笔记(四)— 总结

    目录 Kettle学习笔记(一)- 环境部署及运行 Kettle学习笔记(二)- 基本操作 kettle学习笔记(三)- 定时任务的脚本执行 Kettle学习笔记(四)- 总结 Kettle中设置编码 ...

  10. 简单介绍session,cookie,token以及区别

    Cookie简介 ①.是由服务器发给客户端的特殊信息,以文本的形式存放在客户端 ②.客户端再次请求的时候,会把Cookie回发给服务器 ③.服务器接收到后,会解析Cookie生成与客户端相对应的内容 ...