学习高性能服务系统:网络I/O模型
关于 网络I/O模型
网络传输的信息格式
- XML:应用广泛,适合做网络通讯的信息描述格式
- JSON:轻量级的数据交换格式。
- Protocol Buffer(PB):一种数据交换格式
- TLV:T:类型域 L:大小域 V:内容域 用于金融、军事领域
- 自定义格式:比如Apache Thrift序列化后的数据
BIO的阻塞问题:
无论是客户端还是服务器,同一时间只能发送或者接受一个信息。处于等待回复的间隔,便是"阻塞"问题。
即使使用多线程的方式 服务器端的accept()、read()方法依旧会被阻塞。
NIO同步非阻塞——是对BIO同步阻塞的改进
NIO,又称为多路复用I/O模型。
应用场景:适用于"高并发"场景 ,其他情况NIO没有明显优势
NIO:数据从通道读入缓冲区,从缓冲区写入通道。
- Channel通道:用于应用程序与操作系统进行交互的渠道。
- buffer缓冲区:保证每个通道的读写速度。
- Selector选择器:实现Channel与指定的I/O事件进行绑定。
通道类似于流,但是有区别:
1.通道既可以读数据,也可以写数据。但是流的读写操作是单向的。
2.通道可以异步读取
3.通道的数据总是要经过缓冲区
AIO异步非阻塞
异步的体现:
- 同步的I/O流 服务器端不会"主动"联系客户端 ,但是AIO在数据准备完成后,会主动通知”客户端“
- 异步的I/O是交给OS处理,而异步应用自己会处理。
AIO与NIO的区别:
AIO与NIO都是通过管道的方式进行I/O操作,但是AIO每一个处理器与通道都是独立的、一一对映,NIO是通过选择器进行匹配。
学习高性能服务系统:网络I/O模型相关推荐
- 网络七层模型与物联网三层模型
前言 学安全,基础知识还是得要学习学习的吧. 网络七层模型 OSI参考模型全称是开放系统互连参考模型(Open System Interconnection Reference Model).这一参考 ...
- 基于springboot大学校园防疫与服务系统毕业设计源码111556
基于springboot大学校园防疫与服务系统 摘 要 2019年12月19号中国武汉发生第一例新冠病毒的到来,大家都在听从政府的号召在居家隔离,不管是在城市还是在乡镇.农村,这引起我的注目,设计一套 ...
- 基于Spring Boot的大学校园防疫与服务系统毕业设计源码111556
基于springboo大学校园防疫与服务系统 摘 要 2019年12月19号中国武汉发生第一例新冠病毒的到来,大家都在听从政府的号召在居家隔离,不管是在城市还是在乡镇.农村,这引起我的注目,设计一套大 ...
- 数据传输完整性_卫星导航定位服务系统数据传输安全性探究
引文格式:马雷,韩菲. 卫星导航定位服务系统数据传输安全性研探究[J]. 导航定位学报, 2020, 8(3): 105-109.(MA Lei,HAN Fei. Probe into data tr ...
- 「DLP-KDD 2021征文」及上届论文全集,包含深度学习推荐/广告系统、多目标、模型服务等
「DLP-KDD 2021征文」及上届论文全集,包含深度学习推荐/广告系统.多目标.模型服务等 在DLP-KDD 2021征稿之际,为大家准备了DLP-KDD2020的全部文章和资源列表,内容涵盖了几 ...
- Linux学习笔记_12_进程管理(ps, top)服务管理(service)查看系统网络(netstat)
1. 进程的基本介绍 在 LINUX 中, 每个执行的程序(代码) 都称为一个进程. 每一个进程都分配一个 ID 号. 每一个进程, 都会对应一个父进程, 而这个父进程可以复制多个子进程. 例如 ww ...
- 高性能服务器设计——常用网络服务器设计模型(转载)
文章来源:http://blog.csdn.net/jiang1013nan/article/details/17471341 在业务服务开发过程中,一个优秀的开发框架,往往能够起到事半功倍的效果.现 ...
- 高性能并发TCP网络服务-IOCP框架修正VC2008版本
From: http://blog.csdn.net/lsfa1234/article/details/6223635 高性能并发TCP网络服务IOCP框架修正VC2008版本 从Source Cod ...
- springboot网络招聘服务系统毕业设计源码121727
目 录 摘要 1 绪论 1.1开发的意义及背景 1.2国内研究现状 1.3系统开发技术的特色 1.4论文结构与章节安排 2网络招聘服务系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2. ...
最新文章
- AjaxFileUpload文件上传组件(php+jQuery+ajax)
- 宣布 Windows Azure 通过 PCI DSS 合规性验证并且 ISO 认证范围扩大,同时正式发布 Windows Azure Hyper-V 恢复管理器和其他更新功能...
- 【模式匹配】KMP算法的来龙去脉
- 微信小程序前端支付代码
- 【剑指offer - C++/Java】9、变态跳台阶
- java实现可有括号的android计算器
- Scrapy爬取美女图片续集 (原创)
- 玩转 SpringBoot 2 快速整合 | Thymeleaf 篇
- IntelliJ IDEA 12 与 Tomcat7 配置
- python画3D图
- w ndows10图标,Windows10系统图标怎样提取
- 5分钟快速了解区块链中的哈希值Hash(用户密码存储举例说明)?
- vscode配置代理
- 掌中题库刷题神奇微信小程序介绍
- 程序员缺少自信怎么办? AI 训练数千次的回答
- 备忘4:爬取微博热门信息以及所有热门微博转发的用户信息
- GaussDB数据类型介绍
- UML类图的辅助构建的逻辑代码
- C语言一秒钟看懂for循环和while循环的用法?
- 岭南师范学院计算机证书,2017年岭南师范学院全国计算机等级考试网上报考通知第48次报考程序...