• 35648

    文章

  • 23

    评论

  • 20

    友链

  • 最近新加了很多技术文章,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

Netty特性(二) 多线程编程最佳实践

欢迎来到阿八个人博客网站。本 阿八个人博客 网站提供最新的站长新闻,各种互联网资讯。 喜欢本站的朋友可以收藏本站,或者加QQ:我们大家一起来交流技术! URL链接:https://www.abboke.com/xwzhj/2019/0611/324.html

文章目录

  1. 1. 基于主从Reactor多线程模型
  2. 2. 尽量不要在ChannelHandler中启动用户线程
  3. 3. 解码要放在NIO线程调用的解码Handler中进行
  4. 4. 复杂业务不要在NIO线程上完成
  5. 5. 推荐的线程数
    1. 5.1. 方案一
    2. 5.2. 方案二


微信公众号

本文是《Netty 权威指南》的摘要和读后感,收获颇深,整理成文。

基于主从Reactor多线程模型

基于主从Reactor多线程模型,创建两个NioEventLoopGroup,用于逻辑隔离NIO Acceptor的NIO I/O线程。

尽量不要在ChannelHandler中启动用户线程

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

解码要放在NIO线程调用的解码Handler中进行

解码要放在NIO线程调用的解码Handler中进行,不要切换到用户线程中完成消息的解码。

复杂业务不要在NIO线程上完成

如果业务逻辑处理复杂,不要在NIO线程上完成,建议将解码后的POJO消息成Task,派发到业务线程执行,以保证NIO线程尽快被释放,处理其他的I/O操作。

推荐的线程数

方案一

线程数量 = (线程总时间 / 瓶颈资源时间) x 瓶颈资源的线程并行数

方案二

QPS = 1000 / 线程总时间 x 线程数

相关文章

暂住......别动,不想说点什么吗?
  • 全部评论(0
    还没有评论,快来抢沙发吧!