1. 程式人生 > 其它 >Soul閘道器-day01

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了(當然,可能和我的任務特別簡單有關…)

  1. ​ fork

    這一步是成為Contributor的第一步,將Soul原始碼fork到自己的倉庫,然後執行以下指令:

    git clone 你自己的repository
    

    這個時候你自己的repository就會變成origin,為後續Push操作提供了上傳依據。

  2. 設定upstream

    git remote add upstream https://github.com/dromara/soul.git
    
  3. 選擇需要修改的issue,就是issue列表中的數字;當然其實有更復雜的操作,不過我暫時沒用到,複雜的操作如下:

    請在選擇您要修改的issue。如果是您新發現的問題或想提供issue中沒有的功能增強,請先新建一個issue並設定正確的標籤。
    在選中相關的issue之後,請回復以表明您當前正在這個issue上工作。並在回覆的時候為自己設定一個deadline,新增至回覆內容中。
    

    大概是如果沒有的話需要自己主動提一個issue;並表示你在該issue上工作,並且回覆相應的資訊。

  4. 切換到你的倉庫裡fork的master分支,這步我記得不是太清楚了,似乎一開始就work在master分支?但這樣操作保險點,應該在第二步可以保證本地fork到的程式碼是soul倉庫中最新的。

    git checkout master
    git pull upstream master
    git checkout -b [issueNo,就是issue上的數字]
    

    仔細看了下,有這樣一個說明:

    注意 :PR會按照squash的方式進行merge,如果不建立新分支,本地和遠端的提交記錄將不能保持同步

    不是太懂squash是什麼意思,但還是照著做比較好。

  5. 注意程式碼格式,Soul有相應的程式碼規範,在如下網址(我就不湊這個字數了):

    https://dromara.org/zh-cn/docs/soul/code-conduct.html

  6. push到你fork的git倉庫,直接執行以下指令就好了:

    git add 修改程式碼
    git commit -m 'commit log'
    git push origin issueNo
    
  7. push以後去倉庫可以看到,會有個提示說你的程式碼可以merge了,點選那個按鈕就可以進入pull request的編輯介面了。說個小插敘,就是開始不知道前面那個√怎麼打上去的,然後發現github下面其實會有個文件教怎麼去編輯的,最終結果就是,在需要打勾的條目前面會有一個“[ ]”,把它改成“[x]”就能在preview上看到,前面都√,勾上了。

  8. 接下來就是修修改改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也差不多,還沒有打斷點去追,這幾天又開始莫名其妙的忙起來了,就先更這麼多,看看能不能(抄 劃掉)借鑑一下其他同學的思路。