用于吞吐量的 HTTP 客户端 - Netty 与 Apache HttpAsyncClient

HTTP client for throughput - Netty vs Apache HttpAsyncClient

我有兴趣从一台机器上执行大约 50 个 HTTP requests/second。我不太关心延迟,但我关心吞吐量。

我正在尝试决定是使用 Apache HttpAsyncClient 还是使用 Netty。有人可以阐明每个关于我的问题的优点吗?

我找到了这个 comparison 但我希望能得到更详细的解释,说明哪个更好,适用于什么用例。另外,比较是否意味着使用具有 200 个线程的同步 apache HTTP 客户端比其他选项更好? 200 个线程是不是有点太多了(假设我使用的是普通计算机,有 4 个内核,每个内核 2 个线程和 12GB 内存)?

提前致谢

这些基准测试的主要问题是在现实生活中你有更多的线程和更多的噪音,所以除非你选择异步 IO 选项,否则你不能真正期望在生产中获得类似的结果。

您正在寻求获得更多 吞吐量 ,并且正如预期的那样,基于 Netty 的客户在他们的基准测试中赢得了大量时间。所以这可能是您最好的选择。

我们在广泛的应用程序中非常成功地使用了 Netty,它永远不会让我们失望。你可以使用ning async-http-client,这样你就不用自己实现客户端了。

但是请注意,正如我在评论中所述,我的回答基于我的个人经验和我们的生产指标。永远不要相信您在互联网上看到 post 的随机基准 post,也不要相信 Whosebug 的答案。自己测试一下 ;)