soul網關發佈2.1.0版本 (作Java界最好的API-Gateway)php
更新了太多太多地方,沒法一一列舉,你們只能去看文檔了.html
快速啓動 soul-admin> wgethttps://yu199195.github.io/jar/soul-admin.jar 前端
> java -jar soul-admin.jar --spring.datasource.url="jdbc:mysql://你的url:3306/soul?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=CONVERT_TO_&failOverReadOnly=false&autoReconnect=true&useSSL=false"
--spring.datasource.username='you username' --spring.datasource.password='you password' java
快速啓動 soul-bootstrap> wgethttps://yu199195.github.io/jar/soul-bootstrap.jar mysql
> java -jar soul-bootstrap.jarnginx
這樣soul網關就啓動了git
springMvc服務接入程序員
參考文檔:https://dromara.org/zh-cn/docs/soul/joinUp-mvc.htmlgithub
dubbo服務接入web
參考文檔:https://dromara.org/zh-cn/docs/soul/joinUp-dubbo.html
springCloud服務接入
參考文檔:https://dromara.org/zh-cn/docs/soul/joinUp-springcloud.html
代碼與文檔
github :https://github.com/Dromara/soul
gitee :https://gitee.com/shuaiqiyu/soul
文檔:https://dromara.org/zh-cn/docs/soul/soul.html
Soul網關發佈2.1.X以後,它到底有多方便?
Soul網關自從去年10月我開源以來,經歷了一年的事情,接受到了來自社區不少朋友的建議,並進行持續不斷的優化,已經提供了很是豐富的功能,不少功能都是高度自定義,可視化,高度可擴展的,如今作一個概括總結。
插件
數據同步
對於用戶
舉個列子 ,好比你有一個 dubbo接口 參數定義是一個java bean,
public void insert(final DubboTest dubboTest) {
}
public class DubboTest implements Serializable {
private String id;
private String name;
}
若是你使用 soul網關要發起對它的調用,你的http傳參數 就是在 body 裏面 傳一個json字符串 ,和普通的http調用無差異。
{"id":"123","name":"xiaoyu"}
對於開發者(程序員)
咱們知道,soul網關默認的返回結果是:
{"code":200, "message ": "成功!","data" :"helloWorld!"}
可是,在運用 soul網關對你的業務系統進行調用的時候,你的業務系統可能定義的結果並非上述結構,可能你的 字段叫msg,這樣就會形成結構不同,給前端處理帶來了困擾。咱們注意到了這個事情 :https://github.com/Dromara/soul/issues/109, 如今已經優化,用戶能夠定製化的來定義返回結果,具體的要看soul文檔。
說了這麼多,吹了這麼多牛逼,那麼咱們來看看 soul網關到底能夠在什麼場景下能發揮大做用。
後臺管理web
首先隨便微服務的流行,咱們的後臺都劃分紅不少的微服務,我相信大家每一個公司都有一個後臺管理系統吧,若是我沒猜錯的話,他們大致上是以下架構。
很簡單對吧,就是有個運營管理平臺的web項目,去調用每一個微服務,來進行後臺的查看等等。隨着大家業務須要的加大,可能這裏須要調用的微服務愈來愈多,你的 controller愈來愈多,如今好比你修改了 商品模塊的 接口,你要發版會形成全部其餘的模塊也操做不了(就是你發版影響了其餘模塊的使用,別槓這裏只是比方,不要整藍綠髮版啥的,明白意思吧)。
若是有運營人員在操做其餘模塊,會不會吐槽你?
假如你是公司架構師,我說的是假如,那麼你要怎麼解決這個問題呢?固然,咱們把這樣一個大的web系統,拆分紅不少小web系統,單獨的進行發佈,可是這樣會引入一個問題,怎麼統一登錄,鑑權?(不少後臺管理系統還有權限的劃分) ,這個時候,soul網關 就能發揮重要的做用了,下面我只是列舉了一下簡單的調用圖。
這樣多方便,集成了網關,每一個微服務註冊到網關,網關根據路由規則來進行調用。自動發現服務,連運維配置 nginx的工做都省了,把運維的工資給你,美滋滋。
公司入口網關(開放平臺)
若是一個公司要作開放平臺或者入口網關,鑑權,限流,監控,熔斷確定少不了。
若是貴公司是dubbo體系,開發人員寫了dubbo服務後,還要傻乎乎的新增一個web項目,來提供接口給別人調用嗎?
若是一個接口被攻擊,你怎麼處理呢?若是被大流量攻擊,你怎麼處理呢?
不巧,soul在設計之初就是來幹這種事情的,咱們來看一下總體的架構圖。
零零總總還有不少其餘功能
好比你能夠自定義的開發你的插件啊。
最後最後