netty 详解
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了netty 详解,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含901字,纯文字阅读大概需要2分钟。
内容图文
参考:
1)netty 官网:https://netty.io/
3)掘金小册:Netty 入门与实战:仿写微信 IM 即时通讯系统
目录:
1、netty 架构设计
不同的线程模式,对程序的性能有很大影响,为了搞清 netty 线程模式,我们来系统分析下各个线程模式,最后看看 netty 线程模型有什么优越性。
1.1、线程模型
目前存在的线程模型有:
- 传统阻塞 I/O 服务模型
- Reactor 模式(反应器模式、分发者模式 Dispatcher、通知者模式 Notifier)
根据 Reactor 的数量和处理资源池线程的数量不同,有 3 种典型的实现:
- 单 Reactor 单线程
- 单 Reactor 多线程
- 主从 Reactor 多线程
netty 线程模式:netty 主要基于主从 Reactor 多线程模型做了一定的改进,其中主从 Reactor 多线程模式有多个 Reactor
1.2、传统阻塞 I/O 服务模型
模型特点:
- 采用阻塞 IO 模式 获取输入的数据
- 每个连接都需要独立的线程完成数据的输入,业务处理,数据返回
问题分析:
- 当并发数很大,就会创建大量的线程,占用很大系统资源
- 连接创建后,如果当前线程暂时没有数据可读,该线程回阻塞在 read 操作,造成线程资源的浪费
1.3、Reactor 模式
针对传统阻塞 IO 服务模型的 2 个缺点,解决方案:
- 基于 IO 复用模型:多个连接共用一个阻塞对象,应用程序只需要在一个阻塞对象等待,无需阻塞等待所有连接。当某个连接有新的数据可以处理时,操作系统通知应用程序,线程从阻塞状态返回,开始进行业务处理。
- 基于线程池复用线程资源:不必为每个连接创建线程,将连接完成后的业务处理任务分配给线程进行处理,一个线程可以处理多个连接的业务。
IO 复用结合线程池,就是 Reactor 模式基本设计思想。
1.4、单 Reactor 单线程
---
原文:https://www.cnblogs.com/xy-ouyang/p/12820107.html
内容总结
以上是互联网集市为您收集整理的netty 详解全部内容,希望文章能够帮你解决netty 详解所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。