【发布时间】:2013-05-27 21:21:31
【问题描述】:
Netty 3.x 提供了MemoryAwareThreadPoolExecutor,它允许在 I/O 线程模型和将执行业务逻辑的线程模型之间进行流控制。
4.0 API 发生了很大变化,每个处理程序基本上都提供了输入缓冲区,并且可以在自己的专用线程中执行。一个速度快的解码器如何写入速度较慢的业务处理程序的输入缓冲区,运行在一个单独的线程中,如何被限制或阻塞?
【问题讨论】:
标签: netty
Netty 3.x 提供了MemoryAwareThreadPoolExecutor,它允许在 I/O 线程模型和将执行业务逻辑的线程模型之间进行流控制。
4.0 API 发生了很大变化,每个处理程序基本上都提供了输入缓冲区,并且可以在自己的专用线程中执行。一个速度快的解码器如何写入速度较慢的业务处理程序的输入缓冲区,运行在一个单独的线程中,如何被限制或阻塞?
【问题讨论】:
标签: netty
在 cr2 中,您可能会使用允许限制入站缓冲区的功能,但它不会为您的问题提供开箱即用的解决方案。但是,在 cr6 中,此功能消失了。我也想看看这个问题的答案。
更新: 这是我想出的一个基本实现。当然肯定有更好的方法:https://stackoverflow.com/questions/17389396/netty-throttling-reads-example
【讨论】: