1、功能介紹
KONG是Mashape開源的高性能、高可用的API網(wǎng)關(guān)和API服務(wù)管理層,它基于Nginx服務(wù)器,底層引擎使用OpenResty構(gòu)建,插件層基于Lua語言開發(fā)。
Kong運行時,每個API請求都先被Kong命中,然后請求會被代理轉(zhuǎn)發(fā)到最終API接口,在requests和responses之間,所有安裝和配置的插件都會被執(zhí)行。
- 可以通過插件擴(kuò)展已有功能,提供的服務(wù)包括:
- HTTP基本認(rèn)證、秘鑰認(rèn)證
- CORS(跨域資源共享標(biāo)準(zhǔn))、TCP、UDP
- 文件日志、API請求限流、請求轉(zhuǎn)發(fā)、Nginx監(jiān)控
-
KONG與傳統(tǒng)API網(wǎng)關(guān)相比的優(yōu)點:
image.png
2、主要組件
- Kong Server:基于Nginx服務(wù)器,用來接收API請求
- Apache Cassandra、PostgreSQL:用來存儲操作數(shù)據(jù)
- Kong dashboard:官方推薦UI管理工具
3、網(wǎng)關(guān)插件
- 身份認(rèn)證插件:Basic Authentication、Key authentication、OAuth2.0 authentication、HMAC authentication、JWT、LDAP authentication
- 安全控制插件:ACL(訪問控制)、CORS(跨域資源共享)、動態(tài)SSL、IP限制、爬蟲檢測實現(xiàn)
- 流量控制插件:請求限流(基于請求計數(shù)限流)、上游響應(yīng)限流(根據(jù)upstream響應(yīng)計數(shù)限流)、請求大小限制。限流支持本地、Redis和集群限流模式
- 分析監(jiān)控插件:Galileo(記錄請求和響應(yīng)數(shù)據(jù),實現(xiàn)API分析)、Datadog(記錄API Metric如請求次數(shù)、請求大小、響應(yīng)狀態(tài)和延遲,可視化API Metric)、Runscope(記錄請求和響應(yīng)數(shù)據(jù),實現(xiàn)API性能測試和監(jiān)控)
- 協(xié)議轉(zhuǎn)換插件:請求轉(zhuǎn)換(在轉(zhuǎn)發(fā)到upstream之前修改請求)、響應(yīng)轉(zhuǎn)換(在upstream響應(yīng)返回給客戶端之前修改響應(yīng))
- 日志應(yīng)用插件:TCP、UDP、HTTP、File、Syslog、StatsD、Loggly等
4、網(wǎng)關(guān)特性
- 可擴(kuò)展性:基于Nginx可以水平擴(kuò)展多個Kong服務(wù)器,同時通過前置的負(fù)載均衡配置把請求均勻的分發(fā)到各個Server
- 模塊化:可以通過添加新的插件進(jìn)行擴(kuò)展,插件可以通過RESTful Admin API輕松配置
- Kong核心基于OpenResty(OpenResty是一個基于Nginx與Lua的高性能Web平臺,用于方便的搭建能夠處理超高并發(fā)、擴(kuò)展性極高的動態(tài)Web應(yīng)用、Web服務(wù)和動態(tài)網(wǎng)關(guān)),實現(xiàn)了請求、響應(yīng)的Lua處理化
- 通過實現(xiàn)請求、響應(yīng)的AOP處理,實現(xiàn)攔截請求、響應(yīng)生命周期
- 通過Kong Restful 提供API、API消費者、插件的管理
構(gòu)建 -
Kong集群中的節(jié)點通過gossip協(xié)議自動發(fā)現(xiàn)、同步配置信息到其他節(jié)點。
image.png

