為什么要調(diào)研使用網(wǎng)關
公司現(xiàn)狀邦泄,生產(chǎn)上的服務器服務僅僅是使用nginx反向代理撬腾,隨著公司發(fā)展枫甲,項目不斷新增,需要頻繁的修改生產(chǎn)服務器配置限番;證書過期需要開發(fā)人員配置(運營人員不熟悉生產(chǎn)環(huán)境不會配置舱污,開發(fā)人員需要回公司找運營人員獲取生產(chǎn)權限才能配置),更新麻煩弥虐;不具備限流扩灯、黑白名單配置等功能。更重要的是每更新配置nginx配置生效霜瘪,都需要·nginx -s reload
重新加載配置影響用戶使用珠插。
為了進一步保障生產(chǎn)環(huán)境的安全性,決定引入網(wǎng)關API
什么是微服務API網(wǎng)關
API網(wǎng)關并非一個新興的概念粥庄,在十幾年前就已經(jīng)存在了丧失,它的作用主要是作為流量的入口,統(tǒng)一處理和業(yè)務相關的請求惜互,讓API更佳安全布讹、快速和準確的得到處理,它有以下傳統(tǒng)功能:
反向代理和負載均衡训堆,這和Nginx的定位和功能是一致的
動態(tài)上游描验、動態(tài)SSL證書和動態(tài)限流限速等運行時的動態(tài)功能,這是開源版本的Nginx并不具備的功能
上游的主動和被動健康檢查坑鱼,以及服務熔斷
-
在API網(wǎng)關的基礎上進行擴展膘流,成為全生命周期的API管理平臺
APISIX微服務網(wǎng)關
APISIX是一個云原聲絮缅,高性能,可擴展的微服務API網(wǎng)關呼股,基于OpenResty和etcd實現(xiàn)耕魄。它進行動態(tài)路由和插件熱加載,特別適合微服務體系下的API管理彭谁。
為什么選擇APISIX吸奴?
APISIX是基于云原聲的微服務API網(wǎng)關,可以處理傳統(tǒng)的南北向流量缠局,也可以處理服務間的東西向流量则奥。
APISIX通過插件機制,提供動態(tài)負載均衡狭园,身份驗證读处,限流限速等功能,并支持你自己開發(fā)的插件唱矛。
雖說APISIX是新出的產(chǎn)品罚舱,但它卻功能強大具有蓬勃活力與生機。對比現(xiàn)有流行的網(wǎng)關揖赴,他具有強大的優(yōu)勢馆匿。而且市區(qū)活躍抑胎,對于用戶的疑惑能夠得到很快的回復解答燥滑,產(chǎn)品問題也及時完善修復。具體的大家可自己市區(qū)了解阿逃,我這里就僅做簡單介紹铭拧。
具備功能
- 運行環(huán)境:OpenResty和Tengine都支持
- 云原生:平臺無關,沒有供應商鎖定恃锉,無論裸機還是其他都可以運行
- 熱更新和熱插件:無需重啟服務搀菩,就可以持續(xù)更新配置和插件
- 動態(tài)負載均衡:動態(tài)支持呦權重的循環(huán)負載均衡
- 支持一致性hash的負載均衡:動態(tài)支持一致性hash的負載均衡
- ssl:動態(tài)加載SSL證書
- HTTP(S)反向代理
- 健康檢查:啟用上游上游的健康檢查,將在負載均衡期間自動過濾不健康的路由器破托,以確保系統(tǒng)穩(wěn)定性肪跋。
- 熔斷器:智能跟蹤不健康上游服務。
- 身份認證:key-auth土砂,JWT州既。
- 限制速率
- 限制請求數(shù)
- 限制并發(fā)
- 代理請求重寫:支持重寫請求上游的
host
,uri
萝映,schema
吴叶,enable_websocket
,headers
信息序臂。 - 輸出內(nèi)容重寫:支持自定義修改返回內(nèi)容的
status code
蚌卤,body
,headers
。 - OpenTracing:支持Apache Skywalking和Zipkin
- 監(jiān)控和指標:普羅米修斯
- gRPC代理:通過APISIX代理gRPC連接逊彭,并使用APISIX的大部分特性管理你的gRPC服務咸灿。
- gRPC協(xié)議轉換:支持協(xié)議的轉換,這樣客戶端可以通過HTTP / JSON來訪問你的gRPC API侮叮。
- Serverless:在APISIX的每一個階段析显,你都可以添加并調(diào)用自己編寫的函數(shù)。
-
自定義插件:允許掛載常見階段签赃,例如
rewrite
谷异,access
,header filer
锦聊,body filter
和log
歹嘹,網(wǎng)求允許還掛載balancer
階段。 - 控制臺:內(nèi)置控制臺來操作APISIX孔庭。
- 版本控制:支持操作的多次回滾尺上。
- CLI:使用命令行來啟動,關閉和重啟APISIX圆到。
- REST API
- Websocket代理
- IPv6:支持使用IPv6格式匹配路由怎抛。**
- 群集:APISIX例程是群集的。
- 可擴展:簡單易用的插件機制方便擴展芽淡。
- 高級:在單核上QPS可以達到24k马绝,同時延遲只有0.2毫秒。**
- 防御ReDoS(正則表達式拒絕服務)
- IP黑名單
- IdP支持:支持外部的身份認證服務挣菲,例如Auth0富稻,Okta,Authing等白胀,用戶可以通過對對接Oauth2.0等認證方式椭赋。**
- 單機模式:支持從本地配置文件中加載路由規(guī)則,在kubernetes(k8s)等環(huán)境下更友好或杠。
- 總體規(guī)則:允許對所有請求執(zhí)行插件哪怔,例如黑白名單,限流限速等向抢。
- TCP / UDP代理:動態(tài)TCP / UDP代理认境。
- 動態(tài)MQTT代理:支持
client_id
對MQTT進行負載均衡,同時支持MQTT 3.1笋额。*和 5.0兩個協(xié)議標準元暴。
網(wǎng)關APISIX實戰(zhàn)
網(wǎng)關APISIX實戰(zhàn)分享敬請關注(http://www.reibang.com/p/4f52aaf44738)。