03.22 「原創」大話微服務架構之api網關-apiGateway(二)-技術選型

上篇簡單的介紹了下微服務網關api gateway的一些基本功能和職責,受到了大家的強烈反響,這篇我們繼續來分享下微服務網關的技術選型。

「原創」大話微服務架構之api網關-apiGateway(二)-技術選型

在微服務架構體系中,微服務網關的重要性是不言而言了,那麼我們該到底如何實現微服務網關中的這些功能或者是選擇一些開源的網關呢?下面小編來分享下當下一些開源的微服務網關產品。

1、TYK,我第一次研究微服務網關就是這款啦。原因也很簡單,開源(當然也有收費版本)、跨平臺、容易部署,UI界面優美,支持多種鑑權方式,本身也是Go語言開發的,大家也知道Go語言性能還是非常好的、而且背後還有Google的大力支撐和推廣。

「原創」大話微服務架構之api網關-apiGateway(二)-技術選型

「原創」大話微服務架構之api網關-apiGateway(二)-技術選型

Tyk優點:

l請求配額和速率限制

l多種認證方式

l數據分析

l不停機發布REST API

l能夠導入Apiary 或者 Swagger接口文檔,並Mock

l性能監控

l報文轉換

l跨平臺、跨語言調用

Tyk缺點:

l整體界面雖然美觀,但Api管理界面不支持分頁,展示不夠友好,查詢比較費勁。

l鑑權認證方式說明文檔較少,之前試過幾次都沒有成功

lTyk只能支持HTTP REST API,不支持SOAP或者RPC等其他服務。

由於篇幅原因,這裡先簡單介紹到這裡,後續獨立起一個主題來詳細分享下TYK的安裝和各項功能的使用。

2、Kong網關

「原創」大話微服務架構之api網關-apiGateway(二)-技術選型

「原創」大話微服務架構之api網關-apiGateway(二)-技術選型

「原創」大話微服務架構之api網關-apiGateway(二)-技術選型

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

Kong主要有三個組件:

Kong Server :基於nginx的服務器,用來接收API請求。

Apache Cassandra/PostgreSQL :用來存儲操作數據。

Kong dashboard:官方推薦UI管理工具,當然,也可以使用 restfull 方式 管理admin api。

Kong採用插件機制進行功能定製,插件集(可以是0或n個)在API請求響應循環的生命週期中被執行。插件使用Lua編寫,目前已有幾個基礎功能:HTTP基本認證、密鑰認證、CORS( Cross-origin Resource Sharing,跨域資源共享)、TCP、UDP、文件日誌、API請求限流、請求轉發以及nginx監控。

Kong優點:

l支持多種客戶端語言,如Java、Dotnet、Python

l社區繁榮,如Github星標數都超過了TYK

l基於Kong的第三方插件很多,比如關AdminUI工具都有很幾個語言版本的

l基於Nginx性能超好

Kong缺點:

l功能太多(對,有時優點太多也就成了缺點)

l學習成本高、有一點的學習門檻

3、SpringCloud ApiGateway

這個就不用多說了,SpringCloud家族的一員。

優點:完美兼容SpringCloud那一套架構

缺點:只支持Java,功能單一、只提供簡單的路由轉發功能,而且還得手工配置路由映射規則(當然,現在已經有好多UI工具了)

4、Ocelot

國外牛人開源的一套基於NetCore的微服務網關,自從騰訊財付通開始基於它改造時才被火了起來,不過基於中間件的這種設計理念還真是值得借鑑,請看下圖:

「原創」大話微服務架構之api網關-apiGateway(二)-技術選型

「原創」大話微服務架構之api網關-apiGateway(二)-技術選型

缺點是,路由規則得手工配置在文本文件中,yaml格式,沒有UI操作界面。

5、基於公有云Saas平臺的ApiGateway

這裡需要吐槽一下的是亞馬遜雲的apigateway,除了基於resouce的這種api命名比較規範外,其UI操作界面和基於Lamba那一套真是讓國人很不習慣,相反國內其它雲都做得比較好,比如有阿里雲、華為雲和騰訊雲。

6、自研Api gateway

如果公司自己有實力,有內外網需要網關進行網絡中轉的,那麼可以根據具體業務需求和特色自己開發一套微服務網關,開發語言本身沒有好壞,性能也是相對的,主要看場景,如何去平衡利弊。

好了,今天就分享到這裡,後續將逐個分享上面每個微服務網關的一些安裝和配置細節,感興趣的朋友可以關注我們,也可以下方留言一起探討。


分享到:


相關文章: