GitHub - wanghongfei/gogate:Go實現的高效能Spring Cloud閘道器
Go實現的高效能Spring Cloud閘道器(支援Consul和Eureka),路由配置熱更新,負載均衡,灰度,服務粒度的流量控制,服務粒度的流量統計!
Go語言實現的Spring Cloud閘道器,目標是效能,即使用更少的資源達到更高的QPS。
GoGate以使用高效能關係著稱的FastHttp庫收發HTTP請求,且會為每個主機建立³³單獨一個HostClient以減少鎖競爭。
目前已經實現的功能有:
- 基於Eureka(或Consul)的服務發現,註冊
- 請求路由,路由配置熱更新
- 負載均衡
- 灰度釋出(基於Eureka元資訊裡的版本欄位分配流量)
- 微服務粒度的QPS控制(有基於記憶體的令牌桶演算法限流和Redis + Lua限流兩種可選)
- 微服務粒度的流量統計(暫時實現為記錄日誌到的/ tmp目錄下)
- 優雅關閉(開啟此功能會略微損耗效能)
初步測試了一下效能,結論如下:
相同的硬體環境,Zuul充分預熱且關閉Hystrix的前提下,Go版的閘道器QPS為Zuul的2.3倍,同時記憶體佔用僅為Zuul的十分之一(600M vs 50M)。而且Go基本上第一波請求就能達到最大QPS,zuul要預熱幾次才會穩定。
如果按消耗相同資源的前提下算的話,請一定要比zuul節省多的多的多的機器。
什麼情況下可以考慮使用非Java的語言的閘道器?
- 系統使用Spring Cloud全家桶
- 對Zuul 1效能不滿意
- 對雲官方已經明確不會整合Zuul 2的行為不爽
- 認為Spring Cloud Gateway不夠成熟(相比Zuul 2.0)
- 對閘道器的CPU /記憶體資源使用非常敏感
點選標題進入Github專案!
相關文章
- Spring Cloud Zuul 閘道器SpringCloudZuul
- Spring Cloud Zuul 閘道器(一)SpringCloudZuul
- 微服務閘道器實戰——Spring Cloud Gateway微服務SpringCloudGateway
- 微服務閘道器 Spring Cloud Gateway微服務SpringCloudGateway
- Spring cloud(5)-路由閘道器(Zuul)SpringCloud路由Zuul
- Spring Cloud Gateway 閘道器嚐鮮SpringCloudGateway
- 微服務閘道器Spring Cloud Gateway的應用實戰微服務SpringCloudGateway
- 最全面的改造Zuul閘道器為Spring Cloud Gateway(包含Zuul核心實現和Spring Cloud Gateway核心實現)ZuulSpringCloudGateway
- Spring Cloud Gateway 整合阿里 Sentinel閘道器限流實戰!SpringCloudGateway阿里
- Spring Cloud實戰系列(五) - 服務閘道器ZuulSpringCloudZuul
- Spring Cloud 專題之四:Zuul閘道器SpringCloudZuul
- Spring Cloud Zuul與閘道器中介軟體SpringCloudZuul
- 閘道器 zuul 與 spring-cloud gateway的區別ZuulSpringCloudGateway
- 微服務閘道器Zuul遷移到Spring Cloud Gateway微服務ZuulSpringCloudGateway
- Spring Cloud教程 第九彈 微服務閘道器ZuulSpringCloud微服務Zuul
- JAVA開發者大會-Spring Cloud閘道器分享JavaSpringCloud
- 在Spring Boot中實現API閘道器與路由Spring BootAPI路由
- 基於Spring-Cloud-Gateway開發API閘道器的思路SpringCloudGatewayAPI
- 在spring boot中整合微服務閘道器係統Spring Cloud ZuulSpring Boot微服務CloudZuul
- Spring Cloud Zuul API服務閘道器之請求路由SpringCloudZuulAPI路由
- Spring Cloud構建微服務架構-服務閘道器SpringCloud微服務架構
- Spring Cloud入門教程(五):API服務閘道器(Zuul) 上SpringCloudAPIZuul
- Spring Cloud Alibaba系列(四)使用gateway作為服務閘道器SpringCloudGateway
- kong 一個高效能的 API 閘道器API
- 高效能API閘道器(1)、微服務API閘道器架構設計API微服務架構
- Spring Cloud構建微服務架構—服務閘道器過濾器SpringCloud微服務架構過濾器
- Dubbo想要個閘道器怎麼辦?試試整合Spring Cloud GatewaySpringCloudGateway
- 閘道器 Spring-Cloud-Gateway 原始碼解析 —— 除錯環境搭建SpringCloudGateway原始碼除錯
- 高效能API閘道器Kong介紹API
- dubbo-gateway 高效能dubbo閘道器Gateway
- spring cloud微服務分散式雲架構-服務閘道器過濾器SpringCloud微服務分散式架構過濾器
- 利用Spring Boot實現微服務的API閘道器統一日誌Spring Boot微服務API
- 高德渲染閘道器Go語言重構實踐Go
- 從零搭建Spring Cloud Gateway閘道器(三)——報文結構轉換SpringCloudGateway
- Spring Boot整合Zuul API閘道器Spring BootZuulAPI
- 如何設計一個高效能閘道器
- 利用Spring Boot實現微服務的API閘道器統一限流與熔斷Spring Boot微服務API
- WebRTC閘道器伺服器單埠方案實現Web伺服器