美文网首页Engineer
Java-Netty多线程编程

Java-Netty多线程编程

作者: 安之若素2024 | 来源:发表于2019-08-02 17:01 被阅读0次

    netty的线程模型 设置最佳实践

    (1)创建两个NioEventLoopGroup,隔离NIO Acceptor和NIO的IO线程。

    (2)尽量不要在ChannelHandler中启动用户线程(解码之后,将POJO消息派发到后端的业务线程池除外)。

    (3)解码要放在NIO线程调用的Handler中,不要放在用户线程中解码。

    (4)如果IO操作非常简单,不涉及复杂的业务逻辑计算,没有可能导致阻塞的磁盘操作、数据库操作、网络操作等,可以再NIO线程调用的Handler中完成业务逻辑,不要切换到用户线程。

    (5)如果IO业务操作比较复杂,就不要在NIO线程上完成,因为阻塞可能会导致NIO线程假死,严重降低性能。这时候可以把POJO封装成Task,派发到业务线程池中由业务线程处理,以保证NIO,线程被尽快的释放,处理其余的IO操作。

    (6)可能导致阻塞的操作,数据库操作,第三方服务调用,中间件服务调用,同步获取锁,Sleep等

    (7)Sharable注解的ChannelHandler要慎用

    (8)避免将ChannelHandler加入到不同的ChannelPipeline中,会出现并发问题.

    https://juejin.im/post/5bea1d2e51882523d3163657

    https://www.infoq.cn/article/netty-concurrent-programming-analysis/

    https://www.jianshu.com/p/32fc02299232

    http://www.linkedkeeper.com/137.html

    https://blog.csdn.net/u010853261/article/details/5580521

    相关文章

      网友评论

        本文标题:Java-Netty多线程编程

        本文链接:https://www.haomeiwen.com/subject/hslcdctx.html