ws-cloud-gateway輕量級網(wǎng)關(guān)服務(wù)
基于 openresty + etcd 實現(xiàn)的輕量級網(wǎng)關(guān)服務(wù)。
目前市面上已經(jīng)有很多網(wǎng)關(guān)組件,ws-cloud-gateway 的定位是比更加輕量,只保留在實踐中經(jīng)常使用到的組件,同時可以自定義插件,針對不用業(yè)務(wù),定制化個性功能。
項目中參考了 incubator-apisix,同時有部分代碼直接引用了 apisix 源碼。
為什么選擇 ws-cloud-gateway
-
高性能:底層使用 nginx 異步事件驅(qū)動的網(wǎng)絡(luò)通信模型
-
輕量、靈活:將多個微服務(wù)組件整合到一起,對服務(wù)器開銷?。ü?jié)省服務(wù)器成本),適合初創(chuàng)業(yè)務(wù),同時后期業(yè)務(wù)規(guī)模擴(kuò)大后也容易調(diào)整
-
上手簡單學(xué)習(xí)曲線低,支持自定義插件,可靈活定制個性化功能
-
上游服務(wù)節(jié)點使用 etcd 管理,可以通過推模式更新節(jié)點配置
-
無需重啟服務(wù),可實時修改參數(shù)配置
-
支持控制面板管理
架構(gòu)
服務(wù)啟動時,將自己的節(jié)點信息注冊到 etcd,包括:服務(wù)名稱、ip、端口
網(wǎng)關(guān)服務(wù)從 etcd 監(jiān)聽服務(wù)節(jié)點信息,保存到緩存中,從客戶端請求的 url 中提取服務(wù)名稱,通過服務(wù)名稱查找節(jié)點信息,將請求轉(zhuǎn)發(fā)到后端服務(wù)
todo
-
[x] 服務(wù)發(fā)現(xiàn),動態(tài)路由
-
[x] 自動生成 requestId,方便鏈路跟蹤
-
[x] 控制面板
-
[ ] gRPC 代理
-
[ ] 動態(tài)ip防火墻
-
[ ] 限流器
-
[ ] 用戶登錄認(rèn)證
-
[ ] 接口協(xié)議加解密
-
[ ] 統(tǒng)一配置管理
