1量淌、功能介紹
KONG是Mashape開(kāi)源的高性能骗村、高可用的API網(wǎng)關(guān)和API服務(wù)管理層,它基于Nginx服務(wù)器呀枢,底層引擎使用OpenResty構(gòu)建胚股,插件層基于Lua語(yǔ)言開(kāi)發(fā)。
Kong運(yùn)行時(shí)硫狞,每個(gè)API請(qǐng)求都先被Kong命中信轿,然后請(qǐng)求會(huì)被代理轉(zhuǎn)發(fā)到最終API接口晃痴,在requests和responses之間,所有安裝和配置的插件都會(huì)被執(zhí)行财忽。
- 可以通過(guò)插件擴(kuò)展已有功能倘核,提供的服務(wù)包括:
- HTTP基本認(rèn)證、秘鑰認(rèn)證
- CORS(跨域資源共享標(biāo)準(zhǔn))即彪、TCP紧唱、UDP
- 文件日志、API請(qǐng)求限流隶校、請(qǐng)求轉(zhuǎn)發(fā)漏益、Nginx監(jiān)控
-
KONG與傳統(tǒng)API網(wǎng)關(guān)相比的優(yōu)點(diǎn):
2、主要組件
- Kong Server:基于Nginx服務(wù)器深胳,用來(lái)接收API請(qǐng)求
- Apache Cassandra绰疤、PostgreSQL:用來(lái)存儲(chǔ)操作數(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(訪問(wèn)控制)、CORS(跨域資源共享)夸盟、動(dòng)態(tài)SSL蛾方、IP限制、爬蟲(chóng)檢測(cè)實(shí)現(xiàn)
- 流量控制插件:請(qǐng)求限流(基于請(qǐng)求計(jì)數(shù)限流)上陕、上游響應(yīng)限流(根據(jù)upstream響應(yīng)計(jì)數(shù)限流)、請(qǐng)求大小限制五芝。限流支持本地渐尿、Redis和集群限流模式
- 分析監(jiān)控插件:Galileo(記錄請(qǐng)求和響應(yīng)數(shù)據(jù),實(shí)現(xiàn)API分析)货葬、Datadog(記錄API Metric如請(qǐng)求次數(shù)休傍、請(qǐng)求大小、響應(yīng)狀態(tài)和延遲,可視化API Metric)、Runscope(記錄請(qǐng)求和響應(yīng)數(shù)據(jù)婶芭,實(shí)現(xiàn)API性能測(cè)試和監(jiān)控)
- 協(xié)議轉(zhuǎn)換插件:請(qǐng)求轉(zhuǎn)換(在轉(zhuǎn)發(fā)到upstream之前修改請(qǐng)求)、響應(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ò)展多個(gè)Kong服務(wù)器筷黔,同時(shí)通過(guò)前置的負(fù)載均衡配置把請(qǐng)求均勻的分發(fā)到各個(gè)Server
- 模塊化:可以通過(guò)添加新的插件進(jìn)行擴(kuò)展恩商,插件可以通過(guò)RESTful Admin API輕松配置
- Kong核心基于OpenResty(OpenResty是一個(gè)基于Nginx與Lua的高性能Web平臺(tái),用于方便的搭建能夠處理超高并發(fā)必逆、擴(kuò)展性極高的動(dòng)態(tài)Web應(yīng)用怠堪、Web服務(wù)和動(dòng)態(tài)網(wǎng)關(guān)),實(shí)現(xiàn)了請(qǐng)求名眉、響應(yīng)的Lua處理化
- 通過(guò)實(shí)現(xiàn)請(qǐng)求粟矿、響應(yīng)的AOP處理,實(shí)現(xiàn)攔截請(qǐng)求损拢、響應(yīng)生命周期
- 通過(guò)Kong Restful 提供API陌粹、API消費(fèi)者、插件的管理
構(gòu)建 -
Kong集群中的節(jié)點(diǎn)通過(guò)gossip協(xié)議自動(dòng)發(fā)現(xiàn)福压、同步配置信息到其他節(jié)點(diǎn)掏秩。