【问题标题】:Applying thread pools in upstream channel handlers在上游通道处理程序中应用线程池
【发布时间】:2012-03-26 05:27:06
【问题描述】:

我正在 netty 上编写一个简单的 websocket 服务器。在接受客户端连接之前,服务器必须验证客户端(通过另一个 http 服务器)。身份验证请求可能需要几秒钟。所以,我在一个单独的线程中执行身份验证请求。当客户端连接到服务器时,我向线程池提交了一个新的身份验证任务。 webscoket 握手操作将在身份验证后在同一线程中完成。 从netty服务器设计中应用线程池是否正确?

我阅读了有关 ExecutionHandler 的信息,但在我的服务器中成功完成身份验证后,我没有任何阻塞任务。

【问题讨论】:

    标签: netty


    【解决方案1】:

    我想我会使用 ExecutionHandler 并在您不再需要它时将其从 ChannelPipeline 中删除。这应该让事情变得简单..

    【讨论】:

    • 一些客户端可以稍后断开连接。因此,如果我删除 ExecutionHandler,这些客户端将阻塞主 i/o 循环。
    • 一旦客户端断开Channel并且相关的ChannelPipeline被回收..一旦客户端再次连接它将获得一个新的ChannelPipeline并再次添加ExecutionHandler
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 2015-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多