soul從入門到放棄1--項(xiàng)目搭建

零屏鳍、概述

用于工作勘纯、學(xué)習(xí)的需要開始學(xué)習(xí)soul,希望能堅(jiān)持下去钓瞭,不像專欄的名字一樣 ------ soul從入門到放棄

本篇導(dǎo)讀:網(wǎng)關(guān)的基本概念驳遵、soul主要架構(gòu)、環(huán)境的基本搭建

一山涡、基本概念

什么是api網(wǎng)關(guān)(服務(wù)網(wǎng)關(guān))堤结?

服務(wù)網(wǎng)關(guān) = 路由轉(zhuǎn)發(fā) + 過(guò)濾器

  • 路由轉(zhuǎn)發(fā):接收所有外界請(qǐng)求,根據(jù)路由配置鸭丛,轉(zhuǎn)發(fā)到微服務(wù)上
  • 過(guò)濾器:可以完成一系列的橫切功能竞穷,如:限流、監(jiān)控系吩、權(quán)限校驗(yàn)等

以上這些功能本質(zhì)上都是通過(guò)過(guò)濾器實(shí)現(xiàn)的

什么是soul来庭?

一個(gè)基于WeuFlux實(shí)現(xiàn)的響應(yīng)式API網(wǎng)關(guān),具有異步的穿挨,高性能的月弛,跨語(yǔ)言的等特點(diǎn)肴盏。

soul的主要功能

  • 支持各種語(yǔ)言(http協(xié)議),支持 dubbo帽衙,springcloud協(xié)議菜皂。
  • 插件化設(shè)計(jì)思想,插件熱插拔,易擴(kuò)展厉萝。

插件的熱插拔恍飘,規(guī)則的動(dòng)態(tài)配置。
舉個(gè)列子谴垫,比如一個(gè)接口你限流是1秒50次章母,但是你想調(diào)小點(diǎn),像Springcloud-gateway 或者zuul 是不是還得改動(dòng)配置 然后重啟翩剪。 soul則不需要乳怎,直接在soul-admin找到對(duì)應(yīng)的接口修改即可.</pre>

  • 靈活的流量篩選,能滿足各種流量控制前弯。
  • 內(nèi)置豐富的插件支持蚪缀,鑒權(quán),限流恕出,熔斷询枚,防火墻等等。
  • 流量配置動(dòng)態(tài)化浙巫,性能極高金蜀,網(wǎng)關(guān)消耗在 1~2ms。
  • 支持集群部署狈醉,支持 A/B Test, 藍(lán)綠發(fā)布廉油。

架構(gòu)圖

image
image

此圖綠色部分為客戶端,按照網(wǎng)關(guān)要求的數(shù)據(jù)格式來(lái)請(qǐng)求網(wǎng)關(guān)服務(wù)苗傅。

soul的底層是webflux抒线,如果soul是集群部署的話,可以開啟nginx渣慕,來(lái)反向代理網(wǎng)關(guān)服務(wù)嘶炭。

Soul-admin

是soul的控制臺(tái),負(fù)責(zé)管理插件插拔逊桦,選擇器的配置眨猎,規(guī)則的配置。將數(shù)據(jù)寫入mysql中强经,同時(shí)基于SPI(HTTP睡陪、Zookeeper、Websocket三種之一),實(shí)現(xiàn)數(shù)據(jù)同步機(jī)制(后續(xù)篇章會(huì)詳解)兰迫。

Soul Cluster

soul啟動(dòng)后信殊,會(huì)根據(jù)數(shù)據(jù)同步機(jī)制,拉去遠(yuǎn)端相關(guān)配置信息至本地汁果,寫入本地JVM涡拘,然后開啟監(jiān)聽,來(lái)動(dòng)態(tài)更新JVM中的數(shù)據(jù)据德,

Plugins--Handler

基于插件責(zé)任鏈模式的執(zhí)行流程鳄乏,每個(gè)插件各司其職。插件是根據(jù)用戶在soul-admin配置網(wǎng)關(guān)請(qǐng)求數(shù)據(jù)棘利,規(guī)則橱野,來(lái)執(zhí)行具體邏輯。

二赡译、環(huán)境搭建

依賴工具:樸實(shí)無(wú)華的工具仲吏,降低網(wǎng)關(guān)引入門檻

JDK 1.8+

Maven 3.2.x

Git

mysql 5.x :溫馨提醒,輕易不要嘗試mysql 8

克隆代碼

giee:git clone https://gitee.com/shuaiqiyu/soul.git --depth=1

github:git clone https://gitee.com/shuaiqiyu/soul.git --depth=1

關(guān)于: depth

  • 用 git clone --depth=1 的好處是限制 clone 的深度蝌焚,不會(huì)下載 Git 協(xié)作的歷史記錄,這樣可以大大加快克隆的速度
  • depth用于指定克隆深度誓斥,為1即表示只克隆最近一次commit
  • 適合用 git clone --depth=1 的場(chǎng)景:你只是想clone最新版本來(lái)使用或?qū)W習(xí)只洒,而不是參與整個(gè)項(xiàng)目的開發(fā)工作

maven編譯

可以skip一些,提升運(yùn)行效率

mvn clean package install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Drat.skip=true -Dcheckstyle.skip=true

修改配置及啟動(dòng)

soul-admin

soul-admin/src/main/resources/application.yml

image

修改mysql的配置項(xiàng)目劳坑,之后 啟動(dòng)項(xiàng)目即可毕谴。

項(xiàng)目啟動(dòng)會(huì)類LocalDataSourceLoader,會(huì)執(zhí)行schema.sql腳本距芬,自動(dòng)創(chuàng)建庫(kù)涝开、表、相關(guān)初始化數(shù)據(jù)框仔。

訪問(wèn)地址:http://localhost:9095/

用戶名:admin 密碼:123456


image.png

各種插件

soul-bootstrap

基本不需要修改舀武,只要注意與后臺(tái)連接地址一致即可

image

訪問(wèn)地址:http://localhost:9195/

三、心得總結(jié)

環(huán)境搭建的過(guò)程离斩,復(fù)習(xí)很多maven與git上的使用小技巧

本篇幅講了soul的大致架構(gòu)银舱,對(duì)分布式系統(tǒng)的交互有了新的理解,下一篇將擼起胳膊開始最簡(jiǎn)單的http接口測(cè)試

靡不有初跛梗,鮮克有終寻馏。希望自己能堅(jiān)持寫完這個(gè)系列

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市核偿,隨后出現(xiàn)的幾起案子诚欠,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件轰绵,死亡現(xiàn)場(chǎng)離奇詭異粉寞,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)藏澳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門仁锯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人翔悠,你說(shuō)我怎么就攤上這事业崖。” “怎么了蓄愁?”我有些...
    開封第一講書人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵双炕,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我撮抓,道長(zhǎng)妇斤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任丹拯,我火速辦了婚禮站超,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘乖酬。我一直安慰自己死相,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開白布咬像。 她就那樣靜靜地躺著算撮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪县昂。 梳的紋絲不亂的頭發(fā)上肮柜,一...
    開封第一講書人閱讀 49,772評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音倒彰,去河邊找鬼审洞。 笑死,一個(gè)胖子當(dāng)著我的面吹牛狸驳,可吹牛的內(nèi)容都是我干的预明。 我是一名探鬼主播,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼耙箍,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼撰糠!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起辩昆,我...
    開封第一講書人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤阅酪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體术辐,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡砚尽,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了辉词。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片必孤。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖瑞躺,靈堂內(nèi)的尸體忽然破棺而出敷搪,到底是詐尸還是另有隱情,我是刑警寧澤幢哨,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布赡勘,位于F島的核電站,受9級(jí)特大地震影響捞镰,放射性物質(zhì)發(fā)生泄漏闸与。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一岸售、第九天 我趴在偏房一處隱蔽的房頂上張望践樱。 院中可真熱鬧,春花似錦凸丸、人聲如沸映胁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至坑填,卻和暖如春抛人,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背脐瑰。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工妖枚, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人苍在。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓绝页,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親寂恬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子续誉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容