Kong入門學習實踐(1)基礎概念快覽

dfdb3b3506509fff02183a7b125e96d7.jpeg

【API網關】|?總結/Edison Zhou


最近在學習Kong網關,因此根據老習慣,我會將我的學習過程記錄下來,一來體系化整理,二來作為筆記供將來翻看。由于我司會直接使用Kong企業版,學習過程中我會使用Kong開源版。

什么是Kong?

Kong的原意為金剛,用來形容強健、力量、堅固和穩定,可以想想電影中的金剛,也不難看出Kong的Logo是一只金剛了。

df7693c4efe27e9f472fb82ecd354947.png

Kong是一款基于Nginx Lua模塊寫的高可用,易擴展的開源API Gateway項目。由于Kong是基于Nginx的,所以可以水平擴展多個Kong服務器,通過前置的負載均衡配置把請求均勻地分發到各個Server,來應對大批量的網絡請求。

相對于純Nginx ,Kong具有以下優點:

(1)高性能:亞毫秒級處理延遲,可支持關鍵任務用例和高吞吐量。

(2)可擴展性:可插拔的體系結構,可通過Kong的Plugin SDK擴展 Kong。

(3)可移植性:Kong 可以部署在任何平臺、或者云。

NOTE:Kong作為一個優秀的云原生開源項目,目前已經加入了CNCF云原生計算基金會。

Kong要解決啥問題?

其實,Kong要解決的問題也是API網關需要解決的問題,如下圖所示:

2ae4f51ae074b443e0a586df7030d46a.png

在沒有引入網關之前,為了保障交互的安全,每個服務都需要自己實現一套權限校驗(Auth)、日志、限流、監控等方案。這樣就不太好,各種成本很高。

引入API網關之后呢,像鑒權、監控、安全、限流、日志、緩存等等方案都可以統一由網關實現。各個服務只需要專注于自己的業務實現就OK,可以幫助其實現敏捷開發,提升團隊的迭代效率。

常見的API網關有:OpenResty, Kong, APISIX, Spring Cloud Gateway, Ocelot 等。

Kong有哪些模塊?

Kong的具體模塊如下圖所示:

14f607a99e1c848ab82752c80fb44c02.png

最下面的兩層是:Nginx和OpenResty,它的意思是:kong是一款基于OpenResty (Nginx + Lua) 編寫的高可用、易擴展的API Gateway。我們可以直接把Kong理解成是Nginx,但是Kong的功能不止于Nginx。

DataStore層:kong的配置文件可以支持化的存儲在NoSQL中,可選:cassandra、postgreSQL。

Plugin層:如果想拓展kong的功能,只需要提供對應的插件就行。有一些現成的插件可以直接用,可以自定義插件。

Restful層:它支持通過Restful API的方式來操作操作和配置Kong(管理nginx的配置文件)。而且kong有專屬的dashboard,支持在可視化的界面下和Restful API交互,實現對kong的可視化配置。

Kong的組成架構

Kong的具體組成部分如下圖所示:

8b4c61822a27fa69117d91d5a5eadfa4.png

7f0f49bda26fd2b6d772e9147701c07a.png

Kong的流量處理

默認情況下,Kong Gateway在其配置的代理端口8000和8443上監聽流量。它評估傳入的客戶端API請求,并將其路由到適當的后端API。在路由請求和提供響應時,可以根據需要通過插件應用策略。

例如,在路由請求之前,可能需要客戶端進行身份驗證。這帶來了許多好處,包括:

(1)由于Kong Gateway正在處理身份驗證,因此該服務不需要自己的身份驗證邏輯。

(2)該服務僅接收有效請求,因此不會浪費周期來處理無效請求。

(3)記錄所有請求以集中查看流量。

41d26f63ab0f37aa08a5b3c8b7f40029.png

下一篇,我們會通過Docker快速搭建一個Kong API Gateway環境來玩玩。

參考資料

閆觀濤,《Kong入門與實踐-基于Nginx和OpenRestry的云原生微服務網關》

風起云邊,《Kong - Overview》

風一樣的程序員,《45張圖帶你從0玩轉Kong Gateway》

aea3524f13c3c18f848c85781d8db5cc.gif

年終總結:Edison的2021年終總結

數字化轉型:我在傳統企業做數字化轉型

C#刷題:C#刷劍指Offer算法題系列文章目錄

.NET面試:.NET開發面試知識體系

.NET大會:2020年中國.NET開發者大會PDF資料

c476954cb6963472b3ee33a0c21412d6.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/282714.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282714.shtml
英文地址,請注明出處:http://en.pswp.cn/news/282714.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

條件鎖

ReentrantLock類有一個方法newCondition用來生成這個鎖對象的一個條件(ConditionObject)對象,它實現了Condition接口。Condition提供了線程通訊的一套機制await和signal等線程間進行通訊的方法。。1、適用場景當某線程獲取了鎖對象&#xff0…

計算機應用技術 平面設計,全國信息化計算機應用技術水平教育考試試卷 平面設計師...

科目編號:4233全國信息化計算機應用技術水平教育考試試卷(考試時間:180分鐘 考試總分:100分 專業認證課程:Photoshop 平面設計)注意事項1、 請首先按要求在試卷的標封處填寫您的姓名、考號等;2、 請仔細閱讀各種題目的…

RabbitMQ之消息模式簡單易懂,超詳細分享

前言上一篇對RabbitMQ的流程和相關的理論進行初步的概述,如果小伙伴之前對消息隊列不是很了解,那么在看理論時會有些困惑,這里以消息模式為切入點,結合理論細節和代碼實踐的方式一起來學習。正文常用的模式有Simple、Work、Fanout…

每天一個linux命令(6):rmdir 命令

今天學習一下linux中命令: rmdir命令。rmdir是常用的命令,該命令的功能是刪除空目錄,一個目錄被刪除之前必須是空的。(注意,rm - r dir命令可代替rmdir,但是有很大危險性。)刪除某目錄時也必須具…

jvm系列(八):jvm知識點總覽

在江湖中要練就絕世武功必須內外兼備,精妙的招式和深厚的內功,武功的基礎是內功。對于武功低(就像江南七怪)的人,招式更重要,因為他們不能靠內功直接去傷人,只能靠招式,利刃上優勢來…

計算機基礎知識的文獻,四?計算機文獻檢索基礎知識(原理、結構和功能)

1.計算機檢索原理計算機一方面接受用戶的檢索提問,一方面從數據庫中讀取文獻記錄,然后把兩者進行比較,即檢索提問標識與文獻記錄標識進行匹配運算,如果比較的結果一致,那么這篇文獻就會作為命中文獻在檢索結果中顯示&a…

APP地推心得:可復制的APP地推方案

APP地推難?APP地推方案包含哪些?現在,不需要編程就能自己完成手機APP制作,而且還有大量的APP模板,可以直接套用。APP的制作資金技術大幅度降低,現在最大的問題就是怎么APP推廣的問題。 在移動互聯網的時代&…

【代碼筆記】iOS-播放從網絡上下載的語音

代碼&#xff1a; ViewController.m #import "ViewController.h" //錄音 #import <AVFoundation/AVFoundation.h>interface ViewController () {//播放器AVAudioPlayer *player; }endimplementation ViewController- (void)viewDidLoad {[super viewDidLoad];/…

C# 基于.NET6的CM+Fody+HC入門實戰項目(經典)

概述上期我們概述了CMFodyHC&#xff0c;如果之前沒有閱讀&#xff0c;可以先了解下&#xff1a;C# 為什么說CMFodyHC是WPF開發的最強組合&#xff1f;今天基于最新的VS版本、最新的CM框架版本&#xff0c;.NET基于6.0&#xff0c;搭建了一個WPF入門學習項目實例&#xff0c;關…

PHP資源列表(轉)

一個PHP資源列表&#xff0c;內容包括&#xff1a;庫、框架、模板、安全、代碼分析、日志、第三方庫、配置工具、Web 工具、書籍、電子書、經典博文等等。 初始翻譯信息來自&#xff1a;《推薦&#xff01;國外程序員整理的 PHP 資源大全》 該內容也可以在github的相關項目上瀏…

當今 計算機已進入千家萬戶英語,學生英語教學論文,關于信息技術在大學英語教學中的應用探析相關參考文獻資料-免費論文范文...

導讀:這是一篇與學生英語教學論文范文相關的免費優秀學術論文范文資料,為你的論文寫作提供參考。摘 要&#xff1a;隨著經濟全球化和信息化時代的到來,計算機技術已深入到社會的各個領域.以往大學中所使用的傳統面授課教學模式已經跟不上信息時代的發展步伐,不能滿足當今教學的…

POJ - 2187 Beauty Contest(最遠點對)

http://poj.org/problem?id2187 題意 給n個坐標&#xff0c;求最遠點對的距離平方值。 分析 模板題&#xff0c;旋轉卡殼求求兩點間距離平方的最大值。 #include<iostream> #include<cmath> #include<cstring> #include<queue> #include<vector>…

Kong入門學習實踐(2)實驗環境搭建

【API網關】| 總結/Edison Zhou最近在學習Kong網關&#xff0c;因此根據老習慣&#xff0c;我會將我的學習過程記錄下來&#xff0c;一來體系化整理&#xff0c;二來作為筆記供將來翻看。由于我司會直接使用Kong企業版&#xff0c;學習過程中我會使用Kong開源版。本篇&#xff…

Mysql-索引的基礎和類型

一、 索引的基礎 索引類似于書籍的目錄&#xff0c;要想找到一本書的某個特定主題&#xff0c;需要先查找書的目錄&#xff0c;定位對應的頁碼。 存儲引擎使用類似的方式進行數據查詢&#xff0c;先去索引當中找到對應的值&#xff0c;然后根據匹配的索引找到對應的數據行 二…

ligerUI的列頭合并代碼片段

//列頭合并 function onAfterShowData(data){//顯示數據前觸發此事件 console.log(123); var k 0; var tr $(.l-grid-body.l-grid-body1).find(table tr);//找到被凍結的列&#xff08;frozen&#xff09;,利用find方法找到所有的行 $.each($(tr)…

我的未來計算機作文,我的未來作文(精選4篇)

我的未來作文(精選4篇)在平平淡淡的日常中&#xff0c;大家總免不了要接觸或使用作文吧&#xff0c;作文根據體裁的不同可以分為記敘文、說明文、應用文、議論文。怎么寫作文才能避免踩雷呢&#xff1f;以下是小編收集整理的我的未來作文&#xff0c;僅供參考&#xff0c;大家一…

RDS for MySQL Mysqldump常見問題及處理

2019獨角獸企業重金招聘Python工程師標準>>> 摘要&#xff1a; RDS for MySQL Mysqldump 常見問題和處理 GTID 特性相關 避免表級鎖等待 設置導出字符集 其他導出時需要注意的選項 舉例 RDS for MySQL 不支持的選項 RDS for MySQL 邏輯備份 1. GTID 特性相關 MySQ…

AI求解PDE

一、波動方程的PINN解法: Guo Y, Cao X, Liu B, et al. Solving partial differential equations using deep learning and physical constraints[J]. Applied Sciences, 2020, 10(17): 5917. 二、二維的Navier–Stokes方程組的PINN解法 矢量形式的不可壓縮Navier-Stokes方程…

使用CADisplayLink實現UILabel動畫特效

在開發時&#xff0c;我們有時候會遇到需要定時對UIView進行重繪的需求&#xff0c;進而讓view產生不同的動畫效果。 本文項目 效果圖 初探 CADisplayLink 定時對View進行定時重繪可能會第一時間想到使用NSTimer&#xff0c;但是這樣的動畫實現起來是不流暢的&#xff0c;因為在…

《ASP.NET Core 6框架揭秘》實例演示[27]:ASP.NET Core 6 Minimal API的模擬實現

Minimal API僅僅是在基于IHost/IHostBuilder的服務承載系統上作了小小的封裝而已&#xff0c;它利用WebApplication和WebApplicationBuilder這兩個類型提供了更加簡潔的API&#xff0c;同時提供了與現有API的兼容。[本文節選《ASP.NET Core 6框架揭秘》第17章]一、基礎模型二、…