分享一個國內首個企業級開源的GO語言網關--GoKu API Gateway

轉載自:http://www.javashuo.com/article/p-eqjbbilm-kd.htmlgit

在這裏插入圖片描述

相關連接

項目地址:https://github.com/eolinker/goku-api-gatewaygithub

官網地址:https://www.eolinker.com後端

前言:咱們爲何要作Goku API 網關?

咱們 EOLINKER 自2017年成立以來,立志於作全球領先的 API 管理平臺,咱們先是作了目前國內最大的在線API管理平臺(API Studio),而後在18年發佈了支持API場景(多個API關聯和數據傳遞)的API監控(API Beacon),今年咱們在思考還能爲企業客戶提供什麼更加深度的服務時,認爲API網關是一個關鍵的環節,可以幫助企業綜合管理企業內部的微服務API、更方便地對接第三方API以及更好地維護對外的API等。api

能夠說API網關是咱們在深刻API管理領域幾年以後天然而然要作的事情,而既然要作就努力往大了作,因而咱們作了更加大膽的決定:將核心代碼所有開源,而且不限制網關的節點,還提供了完整的管理界面,讓用戶能夠部署完成後當即投入使用。安全

可能有人不理解爲何開源代碼是一個大膽的決定,首先咱們是一個商業公司而不是公益開源基金會,開源意味着有一大部分收入的流失,其次放眼全球的開源產品幾乎都是不盈利的,每一年還須要投入大量的研發和維護成本等。服務器

那咱們爲何還要將一個公司的核心產品開源?負載均衡

由於一個公司的力量實在有限,若是咱們但願把 Goku API Gateway 作到全球一流的水平,將中國的技術產品輸出到海外去,開源社區和開發者的力量是必不可少的,所以這產品裏面包含着咱們的但願和情懷,但願證實在中國,像咱們同樣專一基礎技術領域的企業也能有好的將來。所幸的是咱們並不孤獨,在咱們前面有 Dubbo、TiDB 等優秀的開源項目,相信他們也和咱們同樣抱有但願在作着相似的事情。less

所以咱們將 Goku API Gateway 開源,正如它的中文名稱 「悟空」 通常,能在開源社區和咱們的共同努力下完成72變。運維

Goku API Gateway CE 簡介

Goku API Gateway (中文名:悟空 API 網關)是一個基於 Golang 開發的微服務網關,可以實現高性能 HTTP API 轉發、服務編排、多租戶管理、API 訪問權限控制等目的,擁有強大的自定義插件系統能夠自行擴展,而且提供友好的圖形化配置界面,可以快速幫助企業進行 API 服務治理、提升 API 服務的穩定性和安全性。微服務

爲何要使用 Goku API Gateway?

Goku API Gateway (悟空 API 網關)是運行在企業系統服務邊界上的微服務網關。當您構建網站、App、IOT甚至是開放API交易時,Goku API Gateway 可以幫你將內部系統中重複的組件抽取出來並放置在Goku網關上運行,如進行用戶受權、訪問控制、流量監控、防火牆、服務編排、數據轉換等。

Goku API Gateway 的社區版本(CE)擁有完善的使用指南和二次開發指南,代碼使用純 Go 語言編寫,擁有良好的性能和擴展性,而且內置的插件系統可以讓企業針對自身業務進行定製開發。

而且 Goku API Gateway 支持與 EOLINKER 旗下的 API Studio 接口管理平臺結合,對 API 進行全面的管理、自動化測試、監控和運維。

總而言之,Goku API Gateway 能讓業務開發團隊更加專一地實現業務。

二. 產品特性

  • 控制檯:經過清晰的UI界面對網關集羣進行各項配置。
  • 集羣管理:Goku網關節點是無狀態的,配置信息自動同步,支持節點水平拓展和多集羣部署
  • 熱更新:無需重啓服務,便可持續更新配置和插件。
  • 負載均衡:支持有權重的round-robin負載平衡。
  • 服務發現:從 Consul、Eureka 等註冊中心發現後端服務器。
  • HTTP(S)反向代理:隱藏真實後端服務,支持 Rest API、Webservice。
  • 服務編排:一個編排API可以對應多個backend;編排API可以規定返回數據類型(如JSON),每一個backend也能規定返回數據類型;backend的入參支持客戶端傳入,也支持backend間的參數傳遞;backend的返回數據支持字段的過濾、刪除、移動、重命名、拆包和封包;編排API可以設定編排調用失敗時的異常返回。
  • 數據轉換:支持將返回數據轉換成JSON或XML。
  • 多租戶管理:根據不一樣的訪問終端或用戶來判斷。
  • 訪問策略:支持不一樣策略訪問不一樣的API、配置不一樣的鑑權(匿名、Apikey、Basic)等。
  • 靈活的轉發規則:支持模糊匹配請求路徑,支持改寫轉發路徑等。
  • IP黑白名單。
  • 自定義插件:容許插件掛載在常見階段,例如before match,access和proxy。
  • 版本控制:支持操做的發佈和屢次回滾。
  • CLI: 使用命令行來啓動、關閉和重啓Goku。
  • Serverless: 在轉發過程的每個階段,均可以添加並調用自定義的插件。
  • 請求日誌(access log):僅記錄轉發的基本內容,自定義記錄字段與排序順序,按期自動清理日誌。
  • 運行日誌(system log):提供控制檯和節點的運行日誌,默認僅記錄ERROR等級的信息,可將等級按實際狀況調成INFO、WARN或DEBUG。
  • 可擴展:簡單易用的插件機制方便擴展功能。
  • 高性能:性能在衆多網關之中表現優異。
  • Open API:提供 API 對網關進行操做,便於集成。

產品截圖

【首頁】

首頁能夠了解網關的基本信息,例如訪問策略數、API數等,還能夠了解請求和轉發的狀況,例如成功率等。

在這裏插入圖片描述

【網關節點】

網關支持集羣化管理,進入不一樣的集羣能夠管理相應的節點。

在這裏插入圖片描述

【服務註冊方式】

您能夠經過靜態或動態的方式來註冊(發現)您的後端服務,建立好服務註冊方式後,您能夠在某個方式的基礎上建立一個或多個負載(Upstream)。

在這裏插入圖片描述

【負載配置】

配置API的轉發目標服務器(負載後端),建立以後能夠設置爲 API 的轉發地址 / 負載後端(Target / Upstream)。

在這裏插入圖片描述

【接口管理】

支持新建普通API和編排API,而且支持導入EOLINKER的API文檔。

在這裏插入圖片描述

【訪問策略】

您能夠給不一樣的調用方或應用設置訪問策略,不一樣的訪問策略能夠設置不一樣的 API 訪問權限、鑑權方式以及插件功能等。

在這裏插入圖片描述

【擴展插件】

插件系統除了提供官方插件,也能夠添加自定義的網關插件。

在這裏插入圖片描述

【日誌設置】

提供詳細的請求日誌和系統運行日誌,請求日誌能夠自定義記錄字段;運行日誌能夠根據狀況調整記錄等級:ERROR、INFO、DEBUG等。
在這裏插入圖片描述

關於咱們

EOLINKER 是領先的 API 管理服務供應商,爲全球超過3000家企業提供專業的 API 研發管理、API自動化測試、API監控、API網關等服務。是首家爲ITSS(中國電子工業標準化技術協會)制定API研發管理行業規範的企業。

官方網站:https://www.eolinker.com

免費下載PC桌面端:https://www.eolinker.com/pc

相關文章
相關標籤/搜索