正常搭建配置中心,网上教程多,这里不讨论,只记坑也是为了后来者少花时间在这里,由于是
当时研究了好久才写的文章,所以只能提供问题的原因,当然会给出印证的思路,闲话不多说进入正题!

版本
spring boot2.1.6
spring boot admin 2.1.6
spring cloud GreenWich.SR1

启动时可以看见配置服务端加载了一些配置文件,如:Adding XXX,启动客户端时,发现有fetching XXX,并且使用/actuator/refresh可以刷新客户端,当然要刷新的配置需要使用@RefreshScope注解标注,实现了以上操作基本上已经搭建成功了.
在不使用spring boot admin(简称:SBA)接入服务时,实现动态刷新配置应该问题不大

接下来说重点
    1.刷新的配置需要使用@RefreshScope注解
    2.使用github或者gitee的Webhooks回调刷新接口时,会出现Json解析异常,这个是因为git里给的那些参数,转的Json不规范,解决方法是使用一个过滤器或者一个转发器,请求体给干掉就行了

正常搭建后如果出现了下面两种情况,就是我掉的坑了,希望下面的分析对你们有用
    第一种情况: config的服务端不接入SBA,config的客户端接入SBA,访问/actuator/bus-refresh接口可以通过日志发现配置的服务端可以接收到更新配置的消息,但是发现配置的客户端不会更新日志.
    原因:配置客户端是需要通过配置中心刷新配置事件的监听去实现配置的刷新,但是SBA的接入破坏了时间的监听.有兴趣的可以通过在DispatchServlet这里端点跟进下源码,这里最终会进入到bus包进行处理,这一步说明配置端是没有任何问题的.
    第二种情况: config的服务端和客户端都接入SBA,有趣的事情发生了,这时config服务端不会接收到任何消息,甚至可能会出现Method Not Support的异常,当然正常的现象应该是可以正常访问,会响应一个Json串,这个Json串具体的我忘了,这个响应与我们请求配置文件的信息类似.查看rabbitMQ会发现没有接收到任何的消息.
    原因:因为不知道被谁解析了,所以只能通过DispatchServlet去看看到底是谁搞的,一根进,了不得,这个请求并不是给Bus解析的,而是被当成/{name}/{profile}.[正则表达式]解析的,具体在哪个包下我忘了,没记错的话应该是spring cloud config的包下解析的.

总的来说,就是SBA的问题,当时找了很久才看到有一个网站上敢说这个是spring留下的一个Bug,我也不知道是不是,但是我就是遇上了
接下来说说解决方法
    1.有实力的可以修改源码,毕竟知道原因了
    2.使用第三方配置中心,如:Apollo,Disconf,还有Nacos,需不需要使用第三方看自己项目的需求
    3.使用其他版本,这个慎重吧,因为版本的修改有时会让你崩溃,当然如果修改版本对你项目影响不大的话,还是建议修改版本,这里给出自己测过没问题的版本SpringBoot-Admin2.0.3,SpringCloud.Finchley,所以说建立项目选择的依赖要慎重,不要使用太新的版本,否则遇到问题找不到比较好的解决方法,就会拖延你项目的进度,但是对于学习来说还是不错的,有坑的地方,只要你啃下去就会收获良多。

希望这篇文章对你们有帮助,当然也有可能是我菜,只意识到这里,如果有其他原因或者是其他解决方法希望可以留言给我,毕竟啃了这么久,啃错了也要让我知道下,不然就乱指导了。

为spring cloud config实现刷新动态掉的坑的更多相关文章

  1. Spring Cloud Config 自动刷新所有节点 架构改造

    详细参考:<Sprin Cloud 与 Docker 微服务架构实战>p162-9.9.4节 要做的改动是: 1.在spring cloud config server 服务端加入 spr ...

  2. Spring Cloud Config 自动刷新所有节点

    全局刷新 详细参考:<Sprin Cloud 与 Docker 微服务架构实战>p160-9.9.2节 1.使用Spring Cloud Config 客户端时,可以使用 /refresh ...

  3. Spring Cloud Config 配置刷新

    客户端进行刷新操作. 1.添加 actuator包,这样 /refresh url才处于可用状态. <dependency> <groupId>org.springframew ...

  4. 史上最简单的SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)

    上一篇文章讲述了一个服务如何从配置中心读取文件,配置中心如何从远程git读取配置文件,当服务实例很多时,都从配置中心读取文件,这时可以考虑将配置中心做成一个微服务,将其集群化,从而达到高可用,架构图如 ...

  5. spring cloud config客户端

    上篇介绍了spring cloud config服务器,本篇介绍客户端.客户端主要是从config服务器获取配置信息. 代码示例 首先创建一个Maven项目,在pom.xml文件中添加依赖: < ...

  6. 通过总线机制实现自动刷新客户端配置(Consul,Spring Cloud Config,Spring Cloud Bus)

    通过总线机制实现自动刷新客户端配置 方案示意图 利用Git服务的webhook通知功能,在每次更新配置之后,Git服务器会用POST方式调用配置中心的/actuator/bus-refresh接口,配 ...

  7. Spring Cloud Config Server 节点迁移引起的问题,请格外注意这一点!

    前言: 虽然强烈推荐选择使用国内开源的配置中心,如携程开源的 Apollo 配置中心.阿里开源的 Nacos 注册&配置中心. 但实际架构选型时,根据实际项目规模.业务复杂性等因素,有的项目还 ...

  8. springboot+cloud 学习(五)统一配置中心 spring cloud config + cloud bus + WebHooks +RibbitMQ

    前言 微服务要实现集中管理微服务配置.不同环境不同配置.运行期间也可动态调整.配置修改后可以自动更新的需求,Spring Cloud Config同时满足了以上要求.Spring Cloud Conf ...

  9. Spring Cloud config之一:分布式配置中心入门介绍

    Spring Cloud Config为服务端和客户端提供了分布式系统的外部化配置支持.配置服务器为各应用的所有环境提供了一个中心化的外部配置.它实现了对服务端和客户端对Spring Environm ...

随机推荐

  1. Win10系统下如何将中文登录名改为英文登录名

    需求:本人每次在换完系统后是默认,图方便,登录名就直接是自己的名字,造成以后安装个别软件时会莫名其妙的出错. 解决办法: 1.在当前用户开始处-点击右键(Windows键+X)-注销 2.切换到Adm ...

  2. 五、Django学习之基于对象的跨表查询

    五.Django学习之基于对象的跨表查询 正向与反向查询 关键在于ForeignKey字段写的位置.例如下面这段代码, 关系属性(字段)写在哪个类(表)里面,从当前类(表)的数据去查询它关联类(表)的 ...

  3. 8.HanLP实现--命名实体识别

    笔记转载于GitHub项目:https://github.com/NLP-LOVE/Introduction-NLP 8. 命名实体识别 8.1 概述 命名实体 文本中有一些描述实体的词汇.比如人名. ...

  4. web开发发展历程

    cs架构:(软件主要运行在桌面上,数据库软件运行在服务器端) 缺点:如果web应用修改或升级,需要每个客户端逐个升级桌面App,因此Browser/server模式开始流行. bs架构:应用程序的逻辑 ...

  5. 目标检测之RCNN,fast RCNN,faster RCNN

    RCNN: 候选区生成(Selective Search). 分割成2000左右的候选小区域 合并规则:颜色.纹理相近,尺度均匀,合并后形状规则 特征提取. 归一候选区尺寸为227×227,归一方法. ...

  6. Educational Codeforces Round 39 Editorial B(Euclid算法,连续-=与%=的效率)

    You have two variables a and b. Consider the following sequence of actions performed with these vari ...

  7. 为什么尽量不要使用Executors创建线程池

    看阿里巴巴开发手册并发编程这块有一条:线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式,通过源码分析禁用的原因. 线程池的优点 管理一组工作线程,通过线程池 ...

  8. 罗德里格斯旋转公式(Rodrigues' rotation formula)推导

    本文综合了几个相关的维基百科,加了点自己的理解,从比较基础的向量投影和叉积讲起,推导出罗德里格斯旋转公式.公式比较繁杂,如有错误,欢迎评论区指出. 对于向量的三维旋转问题,给定旋转轴和旋转角度,用罗德 ...

  9. C++括号匹配检测(用栈)

    输入一串括号,包括圆括号和方括号,()[],判断是否匹配,即([]())或[([][])]为匹配的正确的格式,[(])或([())为不匹配的格式. #include<iostream> # ...

  10. 03(a)多元有约束优化问题(准备知识)

    转成Latex上传太麻烦,直接截图上传了,需要电子版的可以关注一下,微信公众号:“实干小海豹”,回复:”优化01a“,”优化01b“,”优化02a“,”优化02b“,”优化02c“,”优化02c“.. ...