我正在使用Java的OkHttp3向同一个REST端点发送多个POST请求,该端点是与我的同一区域的第三方AWS服务器。我需要尽快处理这些请求(甚至1ms计数)。
现在我应用的唯一性能提示非常基本:我使用HTTP2,因此重用连接套接字并且我异步发送请求所以它不会等待在发送所有请求之前的任何响应。
我应该考虑哪些其他提示来改善效果?
编辑:如果出于任何原因这很重要,我目前正在通过网址传递所有参数,请求正文为空。我可以将它们作为身体的一部分传递给我,但我随意决定不这样做。
答案 0 :(得分:0)
OkHttp是低延迟的不错选择。对于高并发性,Netty可能是更好的选择,但这不是你的用例。
您可能想要衡量禁用gzip时会发生什么。您需要删除网络拦截器中的accept-encoding
请求标头。这可能会让事情变得更快,但这只是因为你在快速链接上。
要研究的另一件事是禁用Nagle’s algorithm。您需要使用自定义Socket.setTcpNoDelay()
来调用SocketFactory
。
OkHttp的下一个版本将支持未加密的HTTP / 2。如果你对此感到满意(这几乎总是一个坏主意),删除TLS可能会给你带来(小)收益。在这里要非常小心;明文通讯是坏消息。