老师是怎么爬坑的-springCloud篇

引言java

今天不聊技术,只聊人生。分享一下我在使用Spring Cloud Config过程当中遇到的坑,以及是如何解决的,这其中,主要看解决方法和思路,技术只占一小部分。一家之言, 仅供参考.git

正文github

在某个特别适合敲代码的深夜,我使用SpringCloud Config(如下简称Config)搭配SpringCloud Bus(如下简称Bus)实现动态刷新配置. 使用的SpringCloud版本是Finchley.M2,M2就是里程碑版本,非正式版.spring

第一个坑

要实现配置动态刷新, 修改配置后, Bus会发送消息到MQ, 我发现这一步就走不通. 因而测试

  1. 网上搜索问题(用google), 发现有人遇到一样的问题, 惋惜的是, 也没有获得解决. 搜索的时候留意SpringCloud的版本.
  2. 怀疑是否是我用的姿式不对, 新版本有变化? 查阅官方文档,个人用法没问题.google

  3. 立马向官方提了issue

老外的效率很高, 次日就把这个bug fix了, 若是我要立马用的话, 必须用Finchley.BUILD-SNAPSHOT版本, 这里顺便提一下, SNAPSHOT版本是可覆盖的版本, 今天看到的Finchley.BUILD-SNAPSHOT和明天看到的Finchley.BUILD-SNAPSHOT极可能是不同的.spa

第二个坑

Bus的坑算是已经填好了, 但让我意识到, 里程碑版本应该不少坑等着我.....但, 本身选择的路, 跪着也要走完......
在测试git的WebHooks时, 发现Gitee的推送无效, Github是没问题的. 因而插件

  1. 不用太费力搜索了, 简单搜一下就行, 由于老外用Gitee确定少, 把Conifg和Gitee放一块儿用的人确定更少.
  2. 到目前为止, 还不知道是Gitee的问题仍是Config的问题(有人要说了, Config既然支持Github那确定不是它的问题, 其实未必!)

因此只能本身先去看源码了, 看看究竟是什么问题, 一说到看源码, 不少人可能就要头疼了, 由于源码不少, 不知道从哪下手, 若是你能这么想, 说明你还挺聪明的, 至少第一想法不是把源码所有阅读完. 从哪下手呢?code

  1. 填在WebHooks的地址是 /monitor, Config里有个模块是spring-cloud-config-monitor, 显然应该从这下手
  2. 若是当初没找到这么明显的特征, 那我会在Config搜索“github”关键字

打开源码一看, 原来Config只对如下git服务作了适配blog

若是git服务不在3者内, Conifg还有个通配的

遗憾的是, Gitee的WebHooks Request里并无path字段, 因此也没有触发Config. 我还对比了Gitee和Github的WebHooks推送的字段区别, 发现Gitee并无如下的字段 added, removed等

问题已经找到, 怎么解决?

  1. 给Gitee反馈, 但愿加上added, removed等字段. 目前已经修改上线.
  2. 给Config反馈, 但愿支持Gitee, 见issue, 结果老外让我本身来写, 提pr

好吧, 说干就干, 提了一个pr, 提个pr也不容易啊

spring团队对代码要求严格

单测什么的就不说了, 这是必须的, 让我之外的是, 连import的顺序也有要求, 好比, 必须

import java.util.Collection;

import org.springframework.core.Ordered;

下面这种写法是不容许的

import org.springframework.core.Ordered;

import java.util.Collection;

为此他们提供了一份代码格式化的插件.
代码修改的同时, 文档也要相应的修改.
此次pr整整20多天才merged进去, 代码会在Config 2.0.0.M8里面.

后记

有的人或者团队, 遇到此类问题, 可能会fork一份源码, 这样本身改掉立马就可使用. 这让我想起一段话, 大意以下:

  • 普通人卖本身的时间, 若是你1小时能赚100元, 那你24小时不休息最多能赚2400元.
  • 聪明人复制本身的时间, 好比写一本书花了1年的时间, 10我的来买和10000人来买, 做者都是花了1年的时间, 但收益却天壤之别.
  • 更聪明的人会买别人的时间, 你的老板不就是花钱买你的时间嘛.

做者:廖师兄 连接:https://www.imooc.com/article/23703 来源:慕课网 本文原创发布于慕课网 ,转载请注明出处,谢谢合做

相关文章
相关标签/搜索