API 网关的设计:异步化请求

对于内部系统使用的网关层,如果对于吞吐量的要求并不高,一般同步请求调用即可。

对于统一的网关层,如何用少量的机器接入更多的服务,这就需要用异步来实现,用来提高更多的吞吐量。对于异步化,一般有以下两种策略:

  • Tomcat/Jetty + NIO + Servlet3

这种策略使用的比较普遍,京东、有赞、Zuul,选取的都是这个策略,这种策略比较使用于 HTTP 的场景,在 Servlet3 中可以开启异步。

  • Netty + NIO

Netty 是为高并发而生的。传闻唯品会的网关就是使用的这个策略,在唯品会的技术文章中,在相同的情况下,Netty 是每秒30w+的吞吐量,Tomcat 是13w+,看得出来是有一定差距的,但是 Netty 需要自己处理 HTTP 协议,这块相对而言也是比较麻烦。

综上,对于网关是 HTTP 请求场景比较多的情况,可以采用 Servlet,毕竟有更加成熟的开发体系;如果更加重视吞吐量,那么可以考虑采用 Netty。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值