1. 程式人生 > 其它 >關於微服務閘道器

關於微服務閘道器

API 閘道器的地位越來越重要,它幾乎劫持了所有流量,內外之間完成了使用者的安全控制、審計,通過自定義外掛的方式滿足企業自身特定需求,最常見的自由身份認證等。隨著服務在數量和複雜度上的不斷增長,更多的企業採用了微服務的方式,這時通過 API 閘道器來完成統一的流量管理和排程就非常有必要。

微服務閘道器和傳統意義上的 API 閘道器有一些不同,主要包括下面幾點:

  • 動態更新:在微服務之前,服務不像現在這樣經常來回地變化。比如微服務需要做橫向擴充,或者故障恢復、熱備、切換等,IP 、節點等變動更加頻繁。舉例如微博上一旦出現了爆點事件,就急速擴充計算點,必須要非常快地擴充新機器來扛壓。波峰波谷變化明顯,分鐘級別的機器動態管理,已經越發是常態。
  • 更低延遲:通常動態就意味著可能會做一些延遲(複雜度增加),在微服務裡面,對於延遲要求比較高,尤其對於現在的使用者體驗,超過 1 秒以上的延遲是完全不可接受的。
  • 使用者自定義外掛:API 閘道器是給企業使用者使用的,它一定存在私有邏輯(比如特殊的認證授權等),所以微服務閘道器必須能夠支援企業使用者自定義外掛。
  • 更集中的管理 API:如前面所說 API 閘道器劫持了使用者的所有流量,所以用閘道器來做統一的 API 管理是非常必要的。在閘道器角度可以看到 API 是如何設計,是否存在延遲、安全問題,以及響應速度和健康資訊等。

現在很多應用和服務都在向微服務、容器化遷移,形成新的雲原生時代。雲原生是下一個 5-10 年的技術顛覆,它將重寫傳統企業的技術架構,非常適用於公有云、私有云、混合雲等各種環境。

Goku 是 Eolink 旗下基於 Golang 開發的微服務開源閘道器,擁有目前市面上最強的效能及穩定性表現,並且可以自由擴充套件幾乎所有功能模組。
同時,Goku本身也提供豐富的流量管理、資料處理、協議轉換等功能,例如動態路由、負載均衡、服務發現、熔斷降級、身份認證、監控與告警等。

由於目前外掛數量多,為了方便統一管理,Goku 對外掛進行了模組化管理。通過外掛機制來實現各種流量處理和分發的功能:限流限速、日誌記錄、安全檢測、故障注入等,同時支援使用者編寫自定義外掛來對資料面進行擴充。
Goku 是下一代雲原生閘道器,是最活躍的開源閘道器專案,更多資料可檢視 Github 和官網。
Goku Github:https://github.com/eolinker/goku


Goku 官網:https://www.eolink.com/product/api_gateway/