Spring Cloud Config——原理解析

springCloud config项目,用来为分布式的微服务系统中提供集成式外部配置支持,分为客户端和服务端
可以让你把配置放到远程服务器,目前支持本地存储、Git以及Subversion。

spring官方如下介绍:

在这里插入图片描述

简而言之: 通过配置服务(Config Server)来为所有的环境和应用提供外部配置的集中管理,这些概念都通过spring的Environment和PropertySource来抽象,所以他可以适用于各类Spring应用,它也能对应用的开发环境、测试环境、生成环境的配置做切换、迁移

原理介绍

  1. springCloudConfig分服务端和客户端,服务端负责将本地,git或者svn中存储的配置文件发布成REST风格的接口,客户端可以从服务端REST接口获取配置。但客户端并不能主动感知到配置的变化,从而主动去获取新的配置,这需要每个客户端通过POST方法触发各自的/refresh接口。而我们上面说的SpringCloudBus就发挥了其作用了

  2. SpringCloudBus通过一个轻量级消息代理连接分布式系统的节点(有点像消息队列那种)。这可以用于广播状态更改(如配置更改)或其他管理指令。SpringCloudBus提供了通过post方法访问的endpoint/bus/refresh(spring boot 有很多监控的endpoint,比如/health),这个接口通常由git的钩子功能(监听触发)调用,用以通知各个SpringCloudConfig的客户端去服务端更新配置。

在这里插入图片描述
git服务器会从远程git拉取配置文件,并存入到本地git文件库,当远程git不可用时,会从本地git文件库拉取配置信息

下面是一张spring cloud config结合bus的一张工作流图

在这里插入图片描述

2.第二个就是去访问配置文件时的,优先级关系的问题,请看下面的图(是自己尝试的数据,直接从server访问的)

在这里插入图片描述
在这里插入图片描述

配置的优先级自上而下,上面的最高

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

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

相关文章

AWS加入.NET Foundation企业赞助商计划

.NET 走向开源,MIT许可协议。 微软为了推动.NET开源社区的发展,2014年联合社区成立了.NET基金会。.NET基金会是一个独立的组织,支持.NET社区和开源,旨在拓宽和加强.NET生态系统和社区。这可以通过多种方式完成,包括项目…

K. Easy Sigma(类欧几里得)

K. Easy Sigma ∑i1n(−1)⌊ik⌋,(n≤109,k≤104)\sum_{i 1} ^{n} (-1) ^{\lfloor i \times \sqrt k \rfloor}, (n \le 10 ^ 9, k \le 10 ^ 4)\\ i1∑n​(−1)⌊ik​⌋,(n≤109,k≤104) 考虑(−1)x1−2(xmod2)1−2(x−2x2)1−2x4⌊x2⌋(-1) ^{x} 1 - 2 \times (x \mod 2) 1 …

Spring cloud——Hystrix 原理解析

1、背景 分布式系统环境下,服务间类似依赖非常常见,一个业务调用通常依赖多个基础服务。如下图,对于同步调用,当库存服务不可用时,商品服务请求线程被阻塞,当有大批量请求调用库存服务时,最终可…

【B】替换 Quartz.net 默认使用的 MySql.Data 为 Mysqlconnector 的学习过程

文章转载授权级别:B无论是 Quartz.net 还是 MySql.Data 都是我们比较熟悉的库了,Quartz.net 如果配置为使用 MySql 数据库做持久化时,默认是硬编码了使用 MySql.Data 来操作 MySql 数据库的。下面是我的一些个人诉求和实践,和大家…

G. GCD Festival(莫比乌斯、欧拉函数)

G. GCD Festival ∑i1n∑j1ngcd⁡(ai,aj)gcd⁡(i,j)∑d1nd∑i1nd∑j1ndgcd⁡(aid,ajd)[gcd⁡(i,j)1]∑d1nd∑k1ndμ(k)∑i1nkd∑j1nkdgcd⁡(aikd,ajkd)Tkd∑T1n∑i1nT∑j1nTgcd⁡(aiT,ajT)∑d∣Tdμ(Td)∑T1nϕ(T)∑i1nT∑j1nTgcd⁡(aiT,ajT)\sum_{i 1} ^{n} \sum_{j 1} ^{n}…

APM(应用性能管理)与Dapper原理介绍

一、APM(应用性能管理) 1.1 什么是APM? APM (Application Performance Management) 即应用性能管理(应用性能监控) APM主要是针对企业 关键业务的IT应用性能和用户体验的监测、优化,提高企业IT应用的可靠…

asp.netcore3.0 使用 DbProviderFactories 连接数据库

在.netstandard2.0时 System.Data.Common 这个包里并没有加入DbProviderFactoriesDbProviderFactories类在.netframework中是非常重要的存在,依靠他可以适配各种数据库客户端(sqlserver、mysql、sqllite等)创建数据库连接。现在可以像.netframework中一样…

MIT 6.824 Lab 1 MapReduce

MapReduce 目标 根据论文所说明的,有MASTER和WORKER两类工作节点,以下实现大都按照论文所说的实现,但是在对MASTER的实现上有所改动: MASTER向WORKER发送心跳检测,这里改为了对分配出去的任务进行超时监控。 MASTER…

大家在寻找的高级程序员到底是什么样子的?

你好,我是Z哥。这篇文章主题很简单,就是一个很常见的话题“什么是高级程序员?”。文章稍微长了些,但是很容易阅读。我们的中国文化,对“面子”看的特别重,所以你会发现身边到处都是高级XXX,听着…

应用服务器——JBoss架构分析

JBoss是什么? JBoss是免费的,开放源代码J2EE的实现,它通过LGPL许可证进行发布。它提供了基本的EJB容器以及EJB(好像应该是J2EE)服务,例如:数据库访问JDBC、交易(JTA/JTS)、消息机制(JTS)、命名机制(JNDI)和管理支持(JMX)。目前的…

优秀的程序员是那种过单行线马路都要往两边看的人

最近一周帮我以前一个同事推荐工作,顺便了解下行情,我这个同事我感觉还行,技术不说有多好,但是往年绝对不至于简历筛选时被刷掉那种,最先开始推给了一个我比较信任的HR手里,她兼职猎头,推给这个…

应用服务器——tomcat架构分析

先mark,后续补充 https://blog.csdn.net/qq_38245537/article/details/79009448

【为自己相亲】单身小姐姐你在哪里,我是书豪,我在等你

笔者简介Introduction书豪:【人工智能爱好者社区】公众号负责人《R数据科学实战:工具详解与案例分析》书籍作者。 你没看错这是书豪在给自己寻觅良缘如果你有,或者身边的朋友有兴趣请与我联系基本信息 出生日期:1995年5月身高&am…

应用服务器——jetty架构分析

先mark,后续补充 PS:网上找的资料要么太旧(2010年的),要么乱七八糟不知所云。百度真弱鸡

知道的越多,越感觉自己渺小

作者:猛哥,关注技术和人文发展的程序员,架构师社区合伙人芝诺说:“人的知识就像一个圆,圆圈外是未知的,圆圈内是已知的,你知道的越多,你的圆圈就会越大。圆的周长也就越大&#xff0…

Java8新特性解析

Java 8中的新特性有: 接口中默认方法,lambda 表达式,方法引用,重复注解,流、函数、接口、map扩展、日期中的新变化等,接下来一一介绍 1. Default Methods for Interfaces(接口中的默认方法) Java 8准许我们在接口中增加一个通过…

.NET Core 3.0 System.Text.Json 和 Newtonsoft.Json 行为不一致问题及解决办法

行为不一致.NET Core 3.0 新出了个内置的 JSON 库, 全名叫做尼古拉斯 System.Text.Json - 性能更高占用内存更少这都不是事...对我来说, 很多或大或小的项目能少个第三方依赖项, 还能规避多个依赖项的依赖 Newtonsoft.Json 版本不一致的问题, 是件极美的事情.但是, 结果总不是不…

Java9 新特性

在介绍 java9 之前,我们先来看看java成立到现在的所有版本。 1990年初,最初被命名为Oak;1995年5月23日,Java语言诞生;1996年1月,第一个JDK-JDK1.0诞生;1996年4月,10个最主要的操作系…

深入探究Kubernetes - 初识容器

♥2019年8月28星期三第47篇原创引言最近Kubernetes比较火,新技术快速火起来,一定有它强大的优势,Hr反馈,招聘时会Kubernetes的很少,风口上的Kubernetes一起学学?扫盲贴,参考《Kubernetes进阶实践…

Java10 新特性

作为当今使用最广泛的编程语言之一的 Java 在 2018 年 3 月 21 日发布了第十个大版本。为了更快地迭代、更好地跟进社区反馈,Java 语言版本发布周期调整为每隔 6 个月发布一次。Java 10 是这一新规则之后,采用新发布周期的第一个大版本。Java 10 版本带来…