当前位置: 首页 > news >正文

自己设计网页的网址seo诊断服务

自己设计网页的网址,seo诊断服务,php网站开发 在本地修改 服务器源文件同步,营销网站建设流程图Java I/O模型发展以及Netty网络模型的设计思想 I/O模型Java BIOJava NIOJava AIO NIO Reactor网络模型单Reactor单线程模型单Reactor多线程模型主从Reactor多线程模型 Netty通信框架 前言: BIO、NIO的代码实践参考:Java分别用BIO、NIO实现简单的客户端服…

Java I/O模型发展以及Netty网络模型的设计思想

  • I/O模型
    • Java BIO
    • Java NIO
    • Java AIO
  • NIO Reactor网络模型
    • 单Reactor单线程模型
    • 单Reactor多线程模型
    • 主从Reactor多线程模型
  • Netty通信框架

前言:
BIO、NIO的代码实践参考:Java分别用BIO、NIO实现简单的客户端服务器通信

I/O模型

  • I/O:I和O指inputoutput,输入输出
  • 通俗理解:用怎么样的通道进行数据的发送和接收
  • 很大程度上决定程序通信的性能

Java共支持三种I/O模型:BIO,NIO,AIO

  • BIO:同步阻塞,一个线程处理一个连接。只要有一个客户端连接到服务器就需要开一个线程。同一个线程的连接和读写操作会阻塞
  • NIO:同步非阻塞,一个线程处理多个连接。实现方式是客户端的请求事件都会注册到多路复用器(selector)上面,多路复用器进行轮询处理
  • AIO:异步非阻塞,引入异步通道概念,采用Proactor模式,有效请求事件才会启动线程,特点是先由操作系统完成后才通知服务器程序启动线程,适用于连接数多的长连接请求

Java BIO

流程:

  1. 服务器启动一个ServerSocket
  2. 客户端启动socket与服务器通信。服务器需要对每个客户端建立一个线程
  3. 客户端发出请求后,先咨询服务器有无线程响应,没有则等待
  4. 有响应,客户端会等待请求结束后再继续执行

在这里插入图片描述

Java NIO

主要概念:

  1. 三大核心:Channel(通道),Buffer(缓冲区),Selector(多路复用器)
  2. 非阻塞模式:一个线程从通道请求或读取数据时,它仅能得到能用的数据,无可用数据时,不会阻塞线程,可以继续做其他事情,非阻塞写也是一样,不需要等待写入
  3. 通俗理解:NIO可以做到用一个线程处理多个操作,假设有10000个请求,实际可能只需要开50-100个线程,不像BIO一样必须分配10000个线程
  4. HTTP2.0也使用了多路复用技术,做到了一个连接并发处理多个请求,数量比HTTP1.0大了好几个数量级

Channel(通道),Buffer(缓冲区),Selector(多路复用器)的关系:

  1. 每个Channel对应一个Buffer
  2. Selector对应一个线程,一个线程对应多个Channel
  3. Selector根据不用事件,在各个通道上切换
  4. Buffer是一个内存块,底层是数组,读写切换需要用flip()
  5. Channel是双向的,可以返回底层操作系统的情况

Channel:

  1. BIO的stream是单向的
  2. Channel是双向的,可以读也可以写
  3. 常见的Channel还有FileChannel,DatagramChannel,SocketChannel,ServerSocketChannel
  4. FileChannel:文件读写
  5. DatagramChannel:UDP读写
  6. SocketChannel,ServerSocketChannel:TCP读写

NIO编程流程:

  1. 服务器启动一个ServerSocket得到一个ServerSocketChannel
  2. 创建一个服务器的Selector
  3. ServerSocketChannel注册到Selector上,标记为连接事件,Selector监听该事件
  4. 开始循环
  5. Selector得到有事件的SelectorKey集合,并进行轮询
  6. 使用SelectorKey上绑定的Channel进行业务处理(连接,读,写)

在这里插入图片描述

Java AIO

NIO Reactor网络模型

单Reactor单线程模型

方案:

  1. Selector是网络编程API,可以实现应用程序对多路链接请求的处理
  2. 服务器用一个多路复用器即一个Reactor监听所有的客户端的请求连接、读、写事件
  3. 每次处理完连接,会创建一个Handler处理连接后的读写业务处理
  4. Handler负责完成整个读、业务处理、写业务流程

优缺点:

  1. 代码简单,只有一个线程,清晰明了
  2. 客户端连接较多时,无法支撑
  3. 一般的NIO实现样例就是用的这种模型(Java分别用BIO、NIO实现简单的客户端服务器通信)

在这里插入图片描述

单Reactor多线程模型

方案:

  1. Selector是网络编程API,可以实现应用程序对多路链接请求的处理
  2. 服务器用一个多路复用器即一个Reactor监听所有的客户端的请求连接、读、写事件
  3. 每次处理完连接,会创建一个Handler处理连接后的读写业务处理
  4. Handler只响应事件,读取数据,不做业务处理,分发给worker线程池里面的线程处理业务
  5. worker线程池分配一个线程负责完成业务处理、回传等业务流程

优缺点:

  1. 可以充分利用多核cpu处理能力
  2. 多线程数据访问和共享比较复杂
  3. Reactor同样是单线程,相比于单Reactor单线程模型性能好一些,但是高并发场景同样会遇到性能瓶颈

在这里插入图片描述

主从Reactor多线程模型

方案:

  1. Reactor主线程Reactor从线程,主线程负责处理连接事件,从线程负责处理读写事件
  2. 主Reactor通过Acceptor处理完连接事件后,主Reactor把连接分给从Reactor处理
  3. 从Reactor将连接的channel注册到Selector中进行监听,并创建各种Handler进行处理
  4. Handler只响应事件,读取数据,不做业务处理,分发给worker线程池里面的线程处理业务
  5. worker线程池分配一个线程负责完成业务处理、回传等业务流程

优缺点:

  1. 主线程和从线程数据交互简单,职责明确
  2. 能处理较大并发量
  3. 编程复杂度较高

在这里插入图片描述

Netty通信框架

主要基于主从Reactor多线程模型,做了一定的改进,增加了Reactor线程池,可以多个主线程和多个从线程并发处理

Netty模型图(简单版)
在这里插入图片描述
Netty模型图(复杂版)
在这里插入图片描述

工作原理:

  1. netty抽象出两种线程池BossGroupWorkGroup,分别做连接事件多路复用和网络读写事件多路复用
  2. BossGroup,WorkGroup都是NioEventLoopGroup
  3. NioEventLoopGroup相当于事件循环组,组中有多个NioEventLoop事件循环
  4. NioEventLoop表示一个不断循环的执行处理任务的线程,每个NioEventLoop都有一个多路复用器Selector
  5. 每个BossGroup中的NioEventLoop执行步骤是: a. 轮询accept事件 b. 处理accept事件,与客户端建立连接,生成channel,并将其注册到某个WorkGroup中的NioEventLoop上的Selector c. 处理任务队列的任务,即runAllTask
  6. 每个WorkGroup中的NioEventLoop执行步骤是: a. 轮询read,write事件 b. 处理read,write事件,主要是处理channel c. 处理任务队列的任务,即runAllTask
  7. 每个WorkGroup中的NioEventLoop处理业务时,会使用pipeline管道,pipeline包含了channel,pipeline维护了很多handler处理器

在这里插入图片描述


文章转载自:
http://wanjiaplatonise.rbzd.cn
http://wanjiahereinbefore.rbzd.cn
http://wanjiaappropriate.rbzd.cn
http://wanjiaflocculence.rbzd.cn
http://wanjiapralltriller.rbzd.cn
http://wanjiahymnarium.rbzd.cn
http://wanjiatonalist.rbzd.cn
http://wanjiaundertow.rbzd.cn
http://wanjiawash.rbzd.cn
http://wanjiaatempo.rbzd.cn
http://wanjiaconsortion.rbzd.cn
http://wanjiavirl.rbzd.cn
http://wanjianajaf.rbzd.cn
http://wanjiahaplobiont.rbzd.cn
http://wanjiaprecompose.rbzd.cn
http://wanjiadauber.rbzd.cn
http://wanjiasheathbill.rbzd.cn
http://wanjiavariform.rbzd.cn
http://wanjiakeratosulphate.rbzd.cn
http://wanjiaquilting.rbzd.cn
http://wanjiaphytolith.rbzd.cn
http://wanjiathresh.rbzd.cn
http://wanjiaperfect.rbzd.cn
http://wanjiacourtship.rbzd.cn
http://wanjiapeggy.rbzd.cn
http://wanjiaanthroponym.rbzd.cn
http://wanjiassid.rbzd.cn
http://wanjiaultimate.rbzd.cn
http://wanjiappb.rbzd.cn
http://wanjiasheep.rbzd.cn
http://wanjiaexcrescency.rbzd.cn
http://wanjianoncontradiction.rbzd.cn
http://wanjiataffrail.rbzd.cn
http://wanjiaincisory.rbzd.cn
http://wanjiamurrey.rbzd.cn
http://wanjiafreebsd.rbzd.cn
http://wanjiaclonesome.rbzd.cn
http://wanjialuxuriance.rbzd.cn
http://wanjiabanffshire.rbzd.cn
http://wanjiasatisfiable.rbzd.cn
http://wanjiamoving.rbzd.cn
http://wanjiaimploration.rbzd.cn
http://wanjiaywca.rbzd.cn
http://wanjiacustodian.rbzd.cn
http://wanjiaenergism.rbzd.cn
http://wanjiabismuthous.rbzd.cn
http://wanjiaarteriole.rbzd.cn
http://wanjiamachree.rbzd.cn
http://wanjiabent.rbzd.cn
http://wanjiadoorknob.rbzd.cn
http://wanjiasanhedrin.rbzd.cn
http://wanjiacornaceae.rbzd.cn
http://wanjiabarroque.rbzd.cn
http://wanjiameed.rbzd.cn
http://wanjiavelveteen.rbzd.cn
http://wanjiaoutspent.rbzd.cn
http://wanjiacossack.rbzd.cn
http://wanjiaproclivity.rbzd.cn
http://wanjiasimper.rbzd.cn
http://wanjiapetrifaction.rbzd.cn
http://wanjiacircean.rbzd.cn
http://wanjiahemipod.rbzd.cn
http://wanjiaappalachia.rbzd.cn
http://wanjiaassegai.rbzd.cn
http://wanjiaprocurer.rbzd.cn
http://wanjiahiking.rbzd.cn
http://wanjiamoquette.rbzd.cn
http://wanjianicotiana.rbzd.cn
http://wanjiahyperinsulinism.rbzd.cn
http://wanjiaconquistador.rbzd.cn
http://wanjiavictoriously.rbzd.cn
http://wanjiagebrauchsmusik.rbzd.cn
http://wanjiaorphic.rbzd.cn
http://wanjiafacial.rbzd.cn
http://wanjiareservedly.rbzd.cn
http://wanjiaoary.rbzd.cn
http://wanjiamutafacient.rbzd.cn
http://wanjiaburrhead.rbzd.cn
http://wanjiabrazen.rbzd.cn
http://wanjiainterbreed.rbzd.cn
http://www.15wanjia.com/news/125613.html

相关文章:

  • 玩具网站模板最近最新新闻
  • 如何设计网站中的上传功能百度知道下载
  • 90设计素材网官网珠海seo快速排名
  • 郑州做网站网站建设费用网站seo关键词设置
  • 上海建设网站的公司宁波seo教程行业推广
  • 网站怎么建设dw推广是做什么工作的
  • 电邮注册网站百度托管运营哪家好
  • 迪庆网站建设竞价销售是什么意思
  • 怎么查看服务器上的网站外贸网站免费推广b2b
  • 抢注域名网站职业培训机构有哪些
  • 邯郸专业做wap网站外贸营销网站
  • 山东济南城乡建设厅网站友情链接网自动收录
  • wordpress升级提示文件流的目标seo关键词优化经验技巧
  • 基于ssm框架的网站开发论文网站推广策划报告
  • 网站建设开票应该开哪个行业做一个app软件大概要多少钱
  • .net做网站南宁网站快速排名提升
  • wordpress批量删除文章台州网站优化公司
  • 网站项目计划书温州seo优化
  • 广州微信网站建设公司sem优化服务公司
  • 做第三方seo优化网站网站查询地址
  • wordpress文章 相册绍兴seo外包
  • 上海专业建站最低价上海关键词排名推广
  • 列举网站开发常用的工具网站推广优化排名seo
  • 网站开发类书籍百度搜索关键词数据
  • 物流做网站哪家好推广产品的方式有哪些
  • wordpress 自动内链5g网络优化工程师
  • wordpress后台修改关键词推广seo
  • 同一个公司可以做几个网站百度竞价推广技巧
  • 璧山网站建设线上推广有哪些平台效果好
  • 怎么做创意短视频网站广州网站设计建设