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

Gid*_*eon 2 java multithreading performance-testing netty apache-httpasyncclient

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

我正在尝试决定是使用Apache HttpAsyncClient还是使用Netty.有人能否解释一下每个人对我的问题的好处?

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

提前致谢

Era*_*rel 6

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

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

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

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