Spring Cloud Config服务端配置细节(一)

上篇文章我们看了Spring Cloud中分布式配置中心的一个基本使用,这里边还涉及到许多细节,本文我们就来看看服务端配置中的一些细节。


本文是Spring Cloud系列的第二十三篇文章,了解前二十二篇文章内容有助于更好的理解本文:

1.使用Spring Cloud搭建服务注册中心
2.使用Spring Cloud搭建高可用服务注册中心
3.Spring Cloud中服务的发现与消费
4.Eureka中的核心概念
5.什么是客户端负载均衡
6.Spring RestTemplate中几种常见的请求方式
7.RestTemplate的逆袭之路,从发送请求到负载均衡
8.Spring Cloud中负载均衡器概览
9.Spring Cloud中的负载均衡策略
10.Spring Cloud中的断路器Hystrix
11.Spring Cloud自定义Hystrix请求命令
12.Spring Cloud中Hystrix的服务降级与异常处理
13.Spring Cloud中Hystrix的请求缓存
14.Spring Cloud中Hystrix的请求合并
15.Spring Cloud中Hystrix仪表盘与Turbine集群监控
16.Spring Cloud中声明式服务调用Feign
17.Spring Cloud中Feign的继承特性
18.Spring Cloud中Feign配置详解
19.Spring Cloud中的API网关服务Zuul
20.Spring Cloud Zuul中路由配置细节
21.Spring Cloud Zuul中异常处理细节
22.分布式配置中心Spring Cloud Config初窥


我们先通过下面一张图来看看Config Server的一个大致工作过程:

图片描述

结合这张图,我来说如下五点:

1.首先我们需要一个远程的Git仓库,自己学习可以直接用GitHub,在在实际生产环境中,需要自己搭建一个Git服务器,远程Git仓库的作用主要是用来保存我们的配置文件
2.除了远程Git仓库之外,我们还需要一个本地Git仓库,每当Config Server访问远程Git仓库时,都会保存一份到本地,这样当远程仓库无法连接时,就直接使用本地存储的配置信息
3.至于微服务A、微服务B则是我们具体的应用,这些应用在启动的时候会从Config Server中来加载相应的配置信息
4.当微服务A/B尝试去从Config Server中加载配置信息的时候,Config Server会先通过git clone命令克隆一份配置文件保存到本地
5.由于配置文件是存储在Git仓库中,所以配置文件天然的具备版本管理功能,Git中的Hook功能可以实时监控配置文件的修改

Git URI中的占位符

灵活的使用URI占位符,可以有效的减少我们的工作量。考虑这样一个问题,我有ServerA、ServerB两个服务,两个服务对应的配置文件的存储地址分别位于https://github.com/lenve/scCo...和https://github.com/lenve/scCo...,但是我的Config Server只有一个,那么当我的ServerA和ServerB连接上Config Server时,Config Server怎么知道去哪个地址下拿配置文件?这个时候就涉及到占位符的使用。
在上篇文章中我们已经了解了Spring Cloud Config中的三种占位符,分别是{application}、{profile}和{label},这些占位符除了用来标识配置文件的规则,还可以用在Config Server中对Git仓库的URI配置,用在URI配置中时,这三个占位符的含义分别如下所示:

1.{application}映射到客户端的 spring.application.name
2.{profile}映射到客户端上的 spring.profiles.active
3.{label}这是一个服务器端功能,标记"版本"的配置文件集

此时,假设我不同环境下的配置文件分别放在下面这些目录下:

https://github.com/lenve/scCo...
https://github.com/lenve/scCo...
https://github.com/lenve/scCo...

那么我的客户端文件这样配置:

spring.application.name=app
# dev根据具体情况来修改
spring.cloud.config.profile=dev
spring.cloud.config.label=master
spring.cloud.config.uri=http://localhost:2007/
server.port=2008

然后Config Server按下面这种方式配置即可:

spring.cloud.config.server.git.uri=https://github.com/lenve/scConfig.git
spring.cloud.config.server.git.search-paths={application}/{profile}

当然这种存储规划不一定最佳,这里只是给小伙伴们演示占位符的用法。

默认情况下,Config Server 克隆下来的文件保存在C:Users<当前用户>AppDataLocalTemp目录下,我们可以通过如下配置来修改:

spring.cloud.config.server.git.basedir=E:\\111\\

健康监测

默认情况下Spring Cloud Config会为配置中心服务端创建一个健康监测器,该检测器默认情况下是访问的仓库文件是{application}为app的配置文件,如果仓库中不存在这个文件,健康显示器就会显示仓库无法连接,此时我们有两种解决方案:1.仓库中添加相应的配置文件;2.重新指定检测的配置,重新指定方式如下:

spring.cloud.config.server.health.repositories.check.name=app
spring.cloud.config.server.health.repositories.check.label=master
spring.cloud.config.server.health.repositories.check.profiles=dev

此时,系统回去访问http://localhost:2007/app/dev/master地址,如果能够访问到,则显示仓库已连接,如下:

图片描述

安全保护

开发环境中我们的配置中心肯定是不能随随便便被人访问的,我们可以加上适当的保护机制,由于微服务是构建在Spring Boot之上,所以整合Spring Security是最方便的方式。

首先添加依赖:

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

然后在application.properties中配置用户名密码:

security.user.name=sang
security.user.password=123

最后在配置中心的客户端上配置用户名和密码即可,如下:

spring.cloud.config.username=sang
spring.cloud.config.password=123

OK,如此之后,其他人就不能随意的获取到我们的配置信息了。OK,本文就先说到这里,有问题欢迎留言讨论。

参考资料:

1.《Spring Cloud微服务实战》

更多JavaEE资料请关注公众号:

图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/393635.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

POJ 1797 Heavy Transportation

传送门&#xff1a;http://poj.org/problem?id1797 不想吐槽了&#xff0c;弄了好久才AC 实现代码&#xff1a; #include <cstdio> #include <cstring> #include <algorithm> #include <vector> #include <cstdio> #include <iostream> u…

java8中方法区的内存大小如何设置_从Java8升级到Java11

奇技 指南为什么选择Java11?容器环境支持&#xff0c;GC等领域的增强&#xff0c;仅通过切换到 Java 11 就有 16&#xff05; 的改进。进行了瘦身&#xff0c;更轻量级&#xff0c;安装包体积小。JDK11 是一个长期支持版。1Java11相对于Java8的一些新特性1.变量类型推断Var关…

hive 初认识

结构Hive 是建立在hadoop上的数据仓库架构,它提供了一系列的工具,可以进行数据提取转换加载(这个过程叫做ETL),这是一种可以存储,查询和分析存储在hadoop中的大规模数据的机制.Hive定义了简单的类SQL查询语句 成为hql,他允许数据SQL的用户查询数据.同时 这个语言也允许数据mapr…

计算机组成原理实验读r1,计算机组成原理实验一

计算机组成原理实验一 (5页)本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01;8.90 积分计算机组成原理实验计算机组成原理实验第一章、TEC-5 计算机组成实验箱简介运算器运算器74181通用寄存器通用寄存器…

Spark常见问题解决办法

以下是在学习和使用spark过程中遇到的一些问题&#xff0c;记录下来。 1、首先来说说spark任务运行完后查错最常用的一个命令&#xff0c;那就是把任务运行日志down下来。 程序存在错误&#xff0c;将日志down下来查看具体原因!down日志命令&#xff1a;yarn logs -application…

autosar工具链_Autosar开发与手写代码开发的区别

Autosar开发流程1.BSW开发主要应用工具链&#xff08;Vector等工具&#xff0c;具体可以百度搜索Autosar配置工具&#xff09;来配置&#xff0c;复杂驱动的代码需要手写&#xff0c;但是也要符合Autosar的接口标准&#xff0c;主要包括&#xff0c;CAN通信配置、数字输入配置、…

山东计算机类好的民办大学,2021年山东所有民办大学名单及排名(教育部)

高考考上一个好的大学&#xff0c;是每位考生和家长的一个梦想,但是选择一个适合自己的大学也非常重要。本文高考助手网帮各位考生整理了关于山东本地区所有的民办大学名单、山东所有的民办大学分数线排名、山东民办大学文理科投档线等相关知识&#xff0c;各位考生在填报志愿的…

用例设计:思维导图orExcel

一、 某次紧急发版时使用思维导图来进行了用例的设计&#xff0c;很被导图多分支罗列、在单一分支上层层递进设计模式的吸引&#xff0c;最终看到由版本主题开枝散叶衍发出的结构性用例时非常开心。从此&#xff0c;几个版本的迭代都使用思维导图进行用例设计。 然而部门制度关…

class对象和class文件_Class文件格式

我们知道Java是一门跨平台的语言&#xff0c;我们编写的Java代码会被编译成中间class文件以让Java虚拟机解析运行。而Java虚拟机规范仅仅描述了抽象的Java虚拟机&#xff0c;在实现具体的Java虚拟机时&#xff0c;仅指出了设计规范。Java虚拟机的实现必须体现规范中的内容&…

构建自己的简单微服务架构(开源)

构建自己的简单微服务架构&#xff08;开源&#xff09; 原文:构建自己的简单微服务架构&#xff08;开源&#xff09;前言 本篇仅作引导&#xff0c;内容较多&#xff0c;如果阅读不方便&#xff0c;可以使用电脑打开我们的文档官网进行阅读。如下图所示&#…

[转载]Spring配置文件详解一:

2019独角兽企业重金招聘Python工程师标准>>> 原文地址&#xff1a;Spring配置文件详解一&#xff1a;<context:annotation-config/>与<context:component-scan base-package"com.xx 作者&#xff1a;爱情随遇而安 <context:annotation-config/>…

手机计算机的隐藏小技巧,涨知识!MIUI计算器原来有这么多隐藏小技巧,最后一个绝对想不到...

原标题&#xff1a;涨知识&#xff01;MIUI计算器原来有这么多隐藏小技巧&#xff0c;最后一个绝对想不到计算器除了我们需要进行日常的计算以外&#xff0c;几乎是用不到的。但是MIUI中的计算器与普通计算器可不同&#xff0c;里面的隐藏小技巧足以让你震惊到&#xff0c;那么…

Android零基础入门第83节:Activity间数据传递方法汇总

2019独角兽企业重金招聘Python工程师标准>>> 在Activity间传递的数据一般比较简单&#xff0c;但是有时候实际开发中也会传一些比较复杂的数据&#xff0c;本节一起来学习更多Activity间数据的传递。 一、常用数据类型 在前面几节我们只学习了一些常用类型的数据传递…

02-c#基础之01-基础语法(一)

1.注释符 1&#xff09;注销 2) 解释 2.C#中的3种注释符 1&#xff09;单行注释// 2)多行注释/*要注释的内容*/ 3)文档注释///多用来解释类或者方法 2.VS中的快捷键 转载于:https://www.cnblogs.com/yoyo-524/p/6502827.html

四五六年级计算机教学计划,五六年级信息技术教学计划

五六年级信息技术教学计划一、大纲对本册教材的要求作为小学阶段的信息技术课程&#xff0c;应以学生对计算机的学习心理、学习行为和学习方法为背景&#xff0c;把计算机基础知识和计算机最新应用融于一体&#xff0c;使之既体现信息技术学科的教学理论&#xff0c;又吸收现代…

阿里巴巴旗下平台口碑推出无人收银技术,改造便利店市场;重庆法院运用 AI 探索“智能判案”...

阿里巴巴旗下平台口碑推出无人收银技术&#xff0c;改造便利店市场 雷锋网消息 阿里巴巴旗下本地生活服务平台口碑今日宣布在上海新兴便利店品牌24鲜上线无人收银技术。消费者只要打开支付宝&#xff0c;扫一扫想要购买的商品的条形码&#xff0c;就可以自助提交订单完成支付。…

如何使用射手影音寻找字幕

我们以"理智与情感"Sense and Sensibility为例&#xff0c;在迅雷搜索了下载&#xff0c;结果到了99%就不动了&#xff0c;由于是字幕文件&#xff0c;不能直接把TD的后缀去掉看影片&#xff0c;但是影片已经下载完成&#xff0c;所以我们使用射手影音播放该电影。&a…

C语言第二次博客作业---分支结构

一、PTA实验作业 题目1&#xff1a;计算分段函数[2] 本题目要求计算下列分段函数f(x)的值&#xff1a; 1.实验代码 double x,result;scanf("%lf",&x);if(x>0){resultsqrt(x);}else{resultpow(x1,2)2*x1/x;}printf("f(%.2f) %.2f",x,result); 2 设计…

OSChina 周四乱弹 ——妹子喜欢的是程序员 这是标准……

2019独角兽企业重金招聘Python工程师标准>>> Osc乱弹歌单&#xff08;2017&#xff09;请戳&#xff08;这里&#xff09; 【今日歌曲】 一叶孤鸿 &#xff1a;分享Nanaka的单曲《いのちの名前&#xff08;Cover 木村弓&#xff09;》 《いのちの名前&#xff08;C…

xp系统sql服务器怎么找,SQL文件在winxp系统下怎么打开

很多用户不知道SQL文件是什么?SQL文件怎么打开?我们存储数据时候经常会遇到SQL文件&#xff0c;如果你不知道WinXP系统SQL文件是什么以及怎么打开的话&#xff0c;那就赶紧看看小编整理的以下文章内容吧!SQL文件是什么?学习编程的同学可能都知道SQL是一种高级的非过程化的编…