经调研,使用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网关来首先搭建网关,已经能知足大部分企业的需求了
阿里粑粑固然财大气粗,本身撸一个呗
在线集群用于实时消息,而离线集群用于诸如营销信息推广等容许很高延时等的的请求
以及两个优化点