美文网首页
Netty多线程编程问题总结

Netty多线程编程问题总结

作者: 知止9528 | 来源:发表于2019-01-20 22:24 被阅读130次

(1)创建两个NioEventLoopGroup,用于逻辑隔离NIO Acceptor和NIO I/O线程
(2)尽量不要在ChannelHandler中启动用户线程(解码后用于将POJO消息派发到后端业务线程的除外)
(3)解码要放在NIO线程调用的解码Handler中进行,不要切换到用户线程完成消息的解码.
(4)如果业务逻辑操作非常简单(纯内存操作),没有复杂的业务逻辑计算,也可能会导致线程被阻塞的磁盘操作,数据库操作,网络操作等,可以直接在NIO线程上完成业务逻辑编排,不需要切换到用户线程.
(5)如果业务逻辑复杂,不要在NIO线程上完成,建议将解码后的POJO消息封装成任务,派发到业务线程池中由业务线程执行,以保证NIO线程尽快释放,处理其它I/O操作.
(6)可能导致阻塞的操作,数据库操作,第三方服务调用,中间件服务调用,同步获取锁,Sleep等
(7)Sharable注解的ChannelHandler要慎用
(8)避免将ChannelHandler加入到不同的ChannelPipeline中,会出现并发问题.


串行执行的ChannelHandler的工作原理.png

相关文章

  • Netty多线程编程问题总结

    (1)创建两个NioEventLoopGroup,用于逻辑隔离NIO Acceptor和NIO I/O线程(2)尽...

  • 7.Netty框架-Netty编程模板(编程步骤)

    一、Netty编程模板 1、Netty编程步骤: 2、Netty编程代码模板:

  • 后端架构师技术图谱(三)-并发、锁、设计模式(二)

    并发 多线程 《40个Java多线程问题总结》 线程安全 《Java并发编程——线程安全及解决机制简介》 一致性、...

  • C#并行和多线程编程

    —— 第五天 多线程编程大总结一、多线程带来的问题1、死锁问题 前面我们学习了Task的使用方法,其中Task的等...

  • netty

    最近有个项目要用到netty,对于netty进行了研究,简单的总结一下。 学习netty的意义 学习网络编程,怎样...

  • 线程

    iOS 多线程:『GCD』详尽总结 NSThread详解 IOS 多线程编程 『NSOperation、NSOpe...

  • Netty学习--传输

    传输迁移 未使用Netty 的阻塞网络编程 未使用Netty 的异步网络编程 使用Netty 的阻塞网络处理 使用...

  • Java NIO

    书本 Netty权威指南netty实战O’Reilly的《Java nio》Unix网络编程 《unix网络编程》...

  • Java-Netty多线程编程

    netty的线程模型 设置最佳实践 (1)创建两个NioEventLoopGroup,隔离NIO Acceptor...

  • Android消息机制(六) 总结

    参考Android线程的正确使用姿势Android性能优化典范之多线程篇 Android多线程编程的总结Andro...

网友评论

      本文标题:Netty多线程编程问题总结

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