老師是怎麼爬坑的-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 來源:慕課網 本文原創發佈於慕課網 ,轉載請註明出處,謝謝合做

相關文章
相關標籤/搜索