Soul閘道器-day01
技術標籤:Soul閘道器
Soul閘道器
初識Soul閘道器
貓大人的專案集:https://dromara.org/en-us/;Soul閘道器的github地址:https://github.com/Dromara/soul
逛github就像逛B站一樣star,watch,fork一鍵三連必不可少,為貓大人拉拉票~
言歸正傳,我們認識一項技術時,首先需要明確的是:這個技術是什麼,用的是什麼思想,用來解決什麼問題;
Soul閘道器是怎樣一個框架
這是一個非同步的,高效能的,跨語言的,響應式的API閘道器。它:
1. 支援各種語言(http協議),支援 dubbo,springcloud協議。 2. 外掛化設計思想,外掛熱插拔,易擴充套件。 3. 靈活的流量篩選,能滿足各種流量控制。 4. 內建豐富的外掛支援,鑑權,限流,熔斷,防火牆等等。 5. 流量配置動態化,效能極高,閘道器消耗在 1~2ms。 6. 支援叢集部署,支援 A/B Test, 藍綠髮布。
需要的安裝環境:
1. JDK 1.8+
2. Maven 3.2.x
3. Git
4. mysql
Soul閘道器原始碼拉取
只是把Soul拉下來比較單調,就多講點成為Soul Contributor的方法吧,開始接任務的時候其實早就做完了,但由於以前沒用github進行過協同開發,所以一直瑟瑟發抖不敢提交,怕出錯,在研究了Soul文件以及提交規範不下10遍後,才戰戰兢兢的提了pull request,結果很快就被accept了(當然,可能和我的任務特別簡單有關…)
-
fork
這一步是成為Contributor的第一步,將Soul原始碼fork到自己的倉庫,然後執行以下指令:
git clone 你自己的repository
這個時候你自己的repository就會變成origin,為後續Push操作提供了上傳依據。
-
設定upstream
git remote add upstream https://github.com/dromara/soul.git
-
選擇需要修改的issue,就是issue列表中的數字;當然其實有更復雜的操作,不過我暫時沒用到,複雜的操作如下:
請在選擇您要修改的issue。如果是您新發現的問題或想提供issue中沒有的功能增強,請先新建一個issue並設定正確的標籤。 在選中相關的issue之後,請回復以表明您當前正在這個issue上工作。並在回覆的時候為自己設定一個deadline,新增至回覆內容中。
大概是如果沒有的話需要自己主動提一個issue;並表示你在該issue上工作,並且回覆相應的資訊。
-
切換到你的倉庫裡fork的master分支,這步我記得不是太清楚了,似乎一開始就work在master分支?但這樣操作保險點,應該在第二步可以保證本地fork到的程式碼是soul倉庫中最新的。
git checkout master git pull upstream master git checkout -b [issueNo,就是issue上的數字]
仔細看了下,有這樣一個說明:
注意 :PR會按照squash的方式進行merge,如果不建立新分支,本地和遠端的提交記錄將不能保持同步
不是太懂squash是什麼意思,但還是照著做比較好。
-
注意程式碼格式,Soul有相應的程式碼規範,在如下網址(我就不湊這個字數了):
https://dromara.org/zh-cn/docs/soul/code-conduct.html
-
push到你fork的git倉庫,直接執行以下指令就好了:
git add 修改程式碼 git commit -m 'commit log' git push origin issueNo
-
push以後去倉庫可以看到,會有個提示說你的程式碼可以merge了,點選那個按鈕就可以進入pull request的編輯介面了。說個小插敘,就是開始不知道前面那個√怎麼打上去的,然後發現github下面其實會有個文件教怎麼去編輯的,最終結果就是,在需要打勾的條目前面會有一個“[ ]”,把它改成“[x]”就能在preview上看到,前面都√,勾上了。
-
接下來就是修修改改pr的程式碼。
Soul閘道器初體驗
需要maven環境,然後我是執行以下maven指令,和其他同學有點小區別,但其實差別應該不是太大:
mvn clean install -Dmaven.javadoc.skip=true -Drat.skip=true -DskipTests
覺得console裡面不斷地刷東西很煩的話,就在上面的命令後面加" > log.txt";感覺一般就是看看結果成功沒,哪裡出錯了,感覺沒必要在console裡面不停的刷,我電腦效能不太行,刷的感覺會特別卡,估計是記憶體不足的原因,不過這檯筆記本又不給加記憶體條…就,湊合著用吧…
基本沒啥意外的話都會成功的,然後就是跑Soul-admin了,要改的就是soul-admin下的application.yml
這個位置改成本地資料庫的密碼;如果不用mysql的話,url和driver-class-name也要一起改了。
跑起來以後大家的介面都一樣,我就不放上來了。
soul-bootstrap也差不多,還沒有打斷點去追,這幾天又開始莫名其妙的忙起來了,就先更這麼多,看看能不能(抄 劃掉)借鑑一下其他同學的思路。