0

调用处理程序链时,Netty 4(或 5)是否继续读取?就像在后台读取并填充一个巨大的队列并在处理程序链完全准备好后处理所有读取?

我问是因为我想将传入缓冲区保存到文件中,但文件被阻塞,如果传入消息多于硬盘驱动器可以处理的消息,这些消息会排队还是阻塞事件只会阻止事件队列读取更多消息? 在发送端,我使用FileRegion了对作者的流量控制。

我查看了源代码,但我不完全确定它们是如何ChannelInvokers工作的,似乎如果没有指定一个默认值,则使用eventLoop.next().

如果有人可以帮助我确保我没有引入潜在的流量控制错误,那就太好了......

我看到了这个选项setAutoRead,但我很确定这会有所不同。

4

1 回答 1

1

如果你想做这样的事情,你应该在添加写入 FS 的处理程序时指定一个自定义 DefaultEventExecutorGroup。这样,您将从 EventLoop 移交工作,因此不会在此处阻塞任何内容。

于 2014-08-15T03:42:55.793 回答