1

不幸的是,JDK 的 HttpUrlConnection 或 UrlConnection 不会异步运行。因此,如果 HTTP 连接因任何原因挂起,您最终会丢失一个线程。另外,Selector 的多路复用允许只使用几个线程来进行大量的 HTTP GET 调用。因此,我一直在开发使用 NIO 的 Selector 并进行 HTTP GET 的代码。因此,除了要完全支持 HTTP 1.1,我必须支持 Keep-Alive、chunked-transfer-mode 以及 HTTP 1.1 支持的其他一些东西之外,核心运行良好。

所以,我也一直在寻找用 Netty 来做这件事,但我找不到一个例子,它展示了如何使用单个线程发出多个 HTTP GET 请求。

因此,如果有人能指出一个网络示例或任何其他合适的库,我将不胜感激。谢谢

4

1 回答 1

2

Netty 的 Channel EventLoop 模型管理最少数量的线程来支持最大数量的客户端连接。它被烘焙到框架中。

API Docs 中有一些 HTTP 示例(源文件中有一个名为 example 的文件夹)。GitHub上还有一些 HTTP 示例,这些示例基于 Manning 的Netty in Action 中的示例。本书的第 15 章 - EventLoop 和 Thread-Model 详细讨论了这一切。

于 2014-09-13T00:45:47.680 回答