17 | 异步RPC:压榨单机吞吐量 https://time.geekbang.org/column/article/216803
这并不是一个新话题,比如现在我们经常提到的响应式开发,就是为了能够提升业务处理的吞吐量。要提升吞吐量,其实关键就两个字:“异步”。我们的 RPC 框架要做到完全异步化,实现全异步 RPC。试想一下,如果我们每次发送一个异步请求,发送请求过后请求即刻就结束了,之后业务逻辑全部异步执行,结果异步通知,这样可以增加多么可观的吞吐量?
说到异步,我们最常用的方式就是返回 Future 对象的 Future 方式,或者入参为 Callback 对象的回调方式,而 Future 方式可以说是最简单的一种异步方式了。我们发起一次异步请求并且从请求上下文中拿到一个 Future,之后我们就可以调用 Future 的 get 方法获取结果。
连续发送 4 次异步请求并且拿到 4 个 Future,由于是异步调用,这段时间的耗时几乎可以忽略不计,之后我们统一调用这几个 Future 的 get 方法。这样一来的话,业务逻辑执行完的时间在理想的情况下是多少毫秒呢?没错,10 毫秒,耗时整整缩短到了原来的四分之一,也就是说,我们的吞吐量有可能提升 4 倍!
原文:https://www.cnblogs.com/rsapaper/p/13368237.html