經調研,使用Spring Cloud Zuul解決方案的佔多數,已經能知足絕大多數公司需求。但除了一些超級公司外,好比阿里,京東,他們是本身擼的一套網關。此外,點評直接採用的nginx負載均衡前置網關,而沒用第七層網關,緣由聽說是七層網關會影響性能,但因爲對其架構不甚瞭解,因此也不得而知。java
京東商API網關實踐nginx
目前大部分服務位於tomcat,但因爲tomcat只能同步,因此正在向netty一步步遷移git
基於框架:https://github.com/venus-boot...,saluki is a microservice framework rely on grpc-java,多是結合Spring cloud的東西作了一些定製化開發,加入好比rpc的一些東西。程序員
saluki gateway是以zuul、saluki、oauth2爲基礎構建的網關係統,主要功能以下github
saluki框架在Spring Cloud基礎上進行了進一步封裝,提供了對rpc的支持、用戶權限等等api
貌似沒有第七層網關,只有nginx+lua,基於tengine定製緩存
諮詢過美團的童鞋,他說網關會增長機器負擔,並且有可能成爲系統瓶頸。所以將統一的鑑權、日誌都打成統一的jar包,讓各個微服務本身去作,但具體系統的具體結構不得而知,可能存在必定的合理性,對於日活上億體量的系統,或許網關確實有可能成爲瓶頸,由於加入統一網關意味着機器數量增長一倍,tomcat
還有megaease這家公司,是IT骨灰級程序員兼網紅陳皓所建立,他認爲一個好的gateway須要具有以下關鍵技術負載均衡
因此,他們本身用go開發了一套easegateway
產品說明:http://megaease.com/docs/gate...
其架構說明圖以下
網關(API Gateway)技術選型
網關(API Gateway)的設計要素
Spring Cloud生態中,標準配置是基於Zuul的網關,並且,已經有多加大型互聯網公司是基於Zuul來實現,好比攜程、點融,因此,咱們不妨用Zuul網關來首先搭建網關,已經能知足大部分企業的需求了
阿里粑粑固然財大氣粗,本身擼一個唄
在線集羣用於實時消息,而離線集羣用於諸如營銷信息推廣等容許很高延時等的的請求
以及兩個優化點