4

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

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

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

提前致谢

4

1 回答 1

8

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

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

我们在广泛的应用程序中非常成功地使用了 Netty,而且它从来没有让我们失望过。您可以使用 ning async-http-client,然后您不必自己实现客户端。

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

于 2016-02-22T19:31:21.430 回答