揭祕ZSearch2.0—基於OpenResty的API閘道器設計
背景
- OpenResty 是一個支援lua的nginx,並且內建了一些常用的lua庫。利用lua,我們就可以便捷得擴充套件nginx能力,甚至可以直接作為Web服務對外提供。 主頁連結
- 由下圖可以看出,我們可以在各個階段進行干預。
設計
- 本文介紹的API閘道器設計很簡單,主要有路由,過濾器,攔截器三個部分組成。
- 可以實現許可權驗證,日誌記錄,引數改寫,限流限速等功能。
實現關鍵
-
這套方案實現並不複雜,主要是對nginx的干預要可控,對nginx主要的干預點有三個。
- init_worker_by_lua_file 註冊路由資訊
- access_by_lua_file 進行dispatch,過濾改寫,許可權校驗和代理請求。如果代理請求的話,要記得
ngx.exit
將請求結束。 - balancer_by_lua_file 根據dispatch資訊路由到不同真實負載伺服器上
參考資料
讓搜尋更簡單
- ZSearch2.0 服務申請入口:http://search.alipay.com/看我們這二級的域名就知道重要性了吧。
- 螞蟻中介軟體的ZSearch2.0,核心採用了ElasticSearch,原生支援所有的ElasticSearch的操作,具備強大的資料檢索和分析能力,自5月份投入試執行以來,已線上服務16個業務方,資料規模在130TB,近2K億的文件數,QPS穩定在30W左右。 通過數月不斷的觀察、調優、測試,如今已達到正式上線的標準,歡迎同學們踴躍使用,提出寶貴意見。
- 後續我們會對Elasticsearch和Lucene做持續優化,歡迎大家來使用,並提出你的需求。
- 有任何問題可以聯絡我們(@善仁(xinyu.jxy),@豐堅(yinghao.wyh),@十倍(lvliang.ll),@城破(huabiao.mahb) )
- 詳細介紹請參閱ZSearch2.0 夏日來襲
相關文章
- 開放API閘道器實踐(一) ——設計一個API閘道器API
- 高效能API閘道器(1)、微服務API閘道器架構設計API微服務架構
- 微服務設計中的API閘道器模式微服務API模式
- 開啟API閘道器設計的一扇窗API
- API 閘道器 KongAPI
- 基於Spring-Cloud-Gateway開發API閘道器的思路SpringCloudGatewayAPI
- 基於.NET CORE微服務框架 -Api閘道器服務管理微服務框架API
- 微服務基礎——厲害了!API閘道器微服務API
- 如何極度壓榨網路效能:揭祕 UCloud 的物理雲閘道器Cloud
- 基於.NET CORE微服務框架 -談談surging API閘道器微服務框架API
- 如何建設企業級API閘道器API
- API閘道器,企業級閘道器可擴充套件API套件
- 微服務架構基礎之API閘道器微服務架構API
- 智慧住所網的閘道器設計
- API 閘道器策略二三事API
- 《Kong入門與實戰:基於Nginx和OpenResty的雲原生微服務閘道器》學習連結NginxREST微服務
- Ocelot API閘道器的實現剖析API
- 長連線閘道器技術專題(八):B站基於微服務的API閘道器從0到1的演進之路微服務API
- 基於Linux和IPSec的VPN閘道器Linux
- 如果讓我設計一套,TPS百萬級API閘道器!API
- 預設閘道器怎麼設定,預設閘道器是什麼
- 億級流量架構之閘道器設計思路、常見閘道器對比架構
- 基於gRPC、API閘道器和身份驗證的Go微服務原始碼專案RPCAPIGo微服務原始碼
- API閘道器:第8層網路API
- Spring Boot整合Zuul API閘道器Spring BootZuulAPI
- 微服務架構閘道器介面設計微服務架構
- kong 一個高效能的 API 閘道器API
- API 閘道器的10個最常見用例API
- Zilla:一個事件驅動的API閘道器事件API
- 基於Prometheus閘道器的監控完整實現參考Prometheus
- 物聯網閘道器開發:基於MQTT訊息匯流排的設計過程(上)MQQT
- 什麼是閘道器?閘道器的作用是什麼,閘道器的作用詳解
- 容器、服務網格和API閘道器:它始於邊緣API
- 開放API閘道器實踐(三) —— 限流API
- 拆輪子:閘道器GOKU-API-GatewayGoAPIGateway
- 高效能API閘道器Kong介紹API
- 八步部署NGINX Plus API閘道器NginxAPI
- 為什麼微服務需要API閘道器?微服務API