apisix~相關組件的圖形化說明
參考:https://docs.api7.ai/apisix/key-concepts/plugins
Apache APISIX是Apache軟件基金會下的頂級項目,由API7.ai開發并捐贈。它是一個高性能的云原生API網關,具有動態、實時等特點。
APISIX網關可作為所有業務的流量入口,為用戶提供了豐富的功能,包括動態路由、動態上游、動態證書、A/B測試、灰度發布(金絲雀發布)、藍綠部署、限速、防攻擊、指標收集、監控報警、可觀測性和服務治理等。基于Nginx和OpenResty構建的APISIX,通過Lua語言擴展了其功能,具有高性能和低延遲的特點,是構建現代微服務架構的理想選擇。
接下來本文將介紹如何安裝并運行APISIX!
APISIX基礎概念
上游(Upstream)
上游是指應用層服務或節點的抽象。它的作用是對服務節點進行負載均衡,以確保請求能夠被有效地處理。在APISIX中,上游的地址信息可以直接配置到路由或服務上。通過創建上游對象,可以在多個路由或服務中共享相同的上游配置,從而簡化管理和維護。
路由(Route)
路由是APISIX中最核心的資源對象之一。它定義了請求的匹配規則,并根據匹配結果執行相應的操作。路由通常包含以下三個重要部分:
匹配規則:用于確定請求是否與路由匹配。
插件配置:用于在請求生命周期中執行特定的邏輯操作。
上游信息:指定請求應該被轉發到哪個上游服務。
通過路由的配置,可以實現諸如路由轉發、請求過濾、流量控制等功能。
服務(Service)
服務是某類API的抽象,通常與上游服務一一對應。它定義了API的基本信息,包括訪問路徑、后端服務地址等。路由與服務之間的關系通常是N:1的,即多個路由可以引用同一個服務。
消費者(Consumer)
消費者是指使用API服務的客戶端。消費者需要進行認證并獲得訪問權限,才能夠使用API提供的服務。在APISIX中,消費者可以與插件或上游服務進行綁定,從而實現個性化的訪問控制和流量管理。
插件(Plugin)
插件是擴展APISIX應用層能力的重要機制。它們在請求或響應的生命周期中執行特定的邏輯操作,以實現諸如請求轉發、請求修改、流量控制等功能。插件可以與路由、服務或消費者進行綁定,以實現個性化的功能定制和流量處理。
Admin API
APISIX 提供了 Admin API 和直觀的 Dashboard,這些工具使得配置 Apache APISIX 路由、上游、服務、SSL 證書等功能變得簡單而直觀。
通過 Admin API,用戶可以輕松地獲取、創建、更新和刪除資源。APISIX 具有熱加載能力,這意味著在資源配置完成后,APISIX 會自動更新配置,無需重新啟動服務。Dashboard 則提供了可視化界面,用戶可以直觀地管理和監控 APISIX 的各項功能。
Admin API 和 Dashboard 的使用使得對 API 網關的管理變得高效且易于維護。通過這些工具,用戶可以根據需要動態地調整和優化 API 網關的配置,從而滿足不同的業務需求。
LB到APISIX到后端服務
- apisix-gatewary(k8s-service)默認容器端口9080,統一流量入口
- apisix-admin(k8s-service)默認容器端口9180,apisix管理的入口api
- apisix-etcd,這是apisix的數據存儲

具體DNS到后端服務

APISIX的架構設計如下所示:

其中,APISIX 核心包括路由匹配、負載均衡、服務發現、API 管理等重要功能,以及配置管理等基礎模塊。同時,APISIX 還提供了豐富的內置插件,涵蓋了可觀測性、安全、流量控制等方面。
Admin API 和 Dashboard 為用戶提供了一種簡單而強大的方式,使得用戶可以輕松地管理和配置他們的 API 網關,從而更好地滿足業務需求。
Plugins Execution Lifecycle
An installed plugin is first initialized. The configuration of the plugin is then checked against the defined JSON Schema to make sure the plugins configuration schema is correct.
When a request goes through APISIX, the plugin's corresponding methods are executed in one or more of the following phases : rewrite, access, before_proxy, header_filter, body_filter, and log. These phases are largely influenced by the OpenResty directives.
apisix和認證服務
routes
upstreams
services
plugins

plugin configs
consumers
consumer groups
SSL Certificates
TLS Between Client Applications and APISIX
mTLS Between APISIX and Upstreams
When a certificate, such as a wildcard certificate, is valid for multiple domains, it is recommended to create a single SSL object to store the certificate and key and avoid the repetitive TLS configurations on upstreams:
Secrets
Stream Routes
![])(https://static.apiseven.com/uploads/2023/04/28/NxlpM4Yf_stream_routes.svg)
浙公網安備 33010602011771號