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

时间:2016-02-17 15:52:15

标签: java multithreading netty performance-testing apache-httpasyncclient

我有兴趣从一台机器执行大约50个HTTP请求/秒。我不太关心延迟,但我确实关心吞吐量。

我试图决定是使用Apache HttpAsyncClient还是使用Netty。有人能否解释一下每个问题对我的问题的影响?

我发现了comparison,但我希望能更详细地解释哪一个更好,哪个用例更好。此外,比较是否意味着使用具有200个线程的同步apache HTTP客户端比其他选项更好? 200个线程是不是太多了(假设我使用的是普通计算机,有4个内核,每个内核2个线程和12GB内存)?

提前致谢

1 个答案:

答案 0 :(得分:5)

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

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

我们非常成功地将Netty用于各种各样的应用程序,它永远不会让我们失望。您可以使用ning async-http-client,然后您不必自己实施客户端。

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