最近在做微服務調研,看到了apisix這個網關,于是進行了初步了解一下。
微服務是指,將大型應用分解成多個獨立的組件,其中每個組件都各自的負責對應項目。
系統的架構大致經歷了:單體應用架構–> SOA架構 -->微服務架構的演變。隨著業務發展,API的數量也在劇增,使用網關對API統一管理也將面臨挑戰,選擇一個更強大的API網關,可以有效的增強系統的監控、容災、鑒權和限流等能力。
API網關是什么?
為客戶端與服務系統之間的交互提供統一的接口,也是管理請求和響應的中心點,選擇一個合適的API網關,可以有效地簡化開發并提高系統的運維與管理效率。API網關作為一個系統訪問的切面,對外提供統一的入口訪問,隱藏系統架構實現的細節,讓微服務使用更為友好;并集成了通用特性,鑒權,限流,熔斷,避免每個微服務單獨開發,提升效率,使系統更加標準化,單獨注重業務。
進入正文,今天主要了解APISIX網關。
APISIX是一個動態、實時、高性能的云原生API網關,提供了負載均衡、動態上游、灰度發布、服務熔斷、身份認證、可觀測性等豐富的流量管理功能。可以使用 Apache APISIX 處理傳統的南北向流量,也可以處理服務間的東西向流量。
架構主要分為兩部分:
第一部分叫做數據面,它是真正去處理客戶端請求的組件,去處理用戶的真實流量,包括像身份驗證、證書卸載、日志分析和可觀測性等功能。 不會存儲數據。
第二部分是控制面,使用的etcd存儲,數據面監聽etcd變化即可。
APISIX的主要概念和組件
Route【路由】: 通過路由定義規則來匹配客戶端請求,根據匹配結果加載并執行相應的插件,最后把請求轉發給指定的上游服務。
Upstream【上游】:按照配置規則對服務節點進行負載均衡,它的地址信息可以直接配置到路由或服務上。
入門安裝
1.先安裝apisix
2.再安裝apisix dashboard
在這里進行路由和上游的配置即可進行簡單的網關。
方式一,直接進行路由配置:
配置名稱和路徑
然后配置服務
進行提交,即可完成一個完整的服務路由轉發。
我們通過postman進行測試
方式二,也可以先配置好上游
配置好后,在路由的時候選擇服務即可。兩者功能一致。
https://httpbin.org/#/Anything/get_anything,是apisix官方提供的測試服務,用于測試我們是否配置路由成功。
還可以進行服務注冊,在選服務的時候,選擇服務類型,就可以勾選nacos,eureka等。便于大型公司技術棧沒有統一的使用場景
使用nacos的話,需要在apisix的配置文件 conf/config.yaml中添加nacos配置
discovery:
nacos:
host:
‐ “http:// u s e r n a m e : {username}: username:{password}@ h o s t 1 : {host1}: host1:{port1}”
以上就是簡單的入門apisix功能。
后續的一些插件功能,比如限流,黑白名單之類都是插件實現。