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

网站标签图标代码seo入门到精通

网站标签图标代码,seo入门到精通,政府网站建设解决方案,咨询服务公司目录 1 Linux I/O模型 2 Linux I/O模型分类 3 Tomcat支持的I/O模型 4 Tomcat I/O模型选型 5 Tomcat NIO实现 6 Tomcat异步IO实现 1 Linux I/O模型 I/O:在计算机内存和外部设备之间拷贝数据的过程程序通过cpu向外部设备发出读指令,数据从外部设置拷贝至内…

目录

1 Linux I/O模型

2 Linux I/O模型分类

3 Tomcat支持的I/O模型

4 Tomcat I/O模型选型

5 Tomcat NIO实现

6 Tomcat异步IO实现


1 Linux I/O模型
  • I/O:在计算机内存和外部设备之间拷贝数据的过程
  • 程序通过cpu向外部设备发出读指令,数据从外部设置拷贝至内存需要一段时间,这段时间cpu是空闲的,此时程序会有两种选择:
    • 让出cpu资源,让其干其他事
    • 继续让cpu不停地查询数据是否拷贝完成
  • 采用哪种策略就是I/O模型需要解决的事

  • 一个进程的地址空间分为用户空间和内核空间
  • 用户程序只能访问用户空间,内核进程可以访问整个进程空间
  • 只有内核才可以直接访问各种硬件资源,比如磁盘和网卡
  • 当cpu从网络读取数据时,分为两个阶段
    • 数据准备阶段:将数据从网卡拷贝到内核空间
    • 数据拷贝阶段:将数据从内核空间拷贝到用户空间
  • 不同的I/O模型对以上两个步骤有不同的实现

2 Linux I/O模型分类
  • 同步阻塞I/O
  • 同步非阻塞I/O
  • I/O多路复用
  • 信号驱动式I/O
  • 异步I/O

  • 阻塞或非阻塞是指应用程序在发起I/O操作时,是立即返回还是等待
  • 同步异步应用程序内核通信数据内核空间应用空间拷贝内核主动发起还是应用程序

java支持I/O模型同步阻塞I/OI/O多路复用异步I/O

3 Tomcat支持的I/O模型

tomcat支持I/O模型

IO模型

描述

BIO(BioEndpoint)

同步阻塞IO

模式下每个请求都会占用一个线程性能开销大不适合高并发场景

但是稳定适合连接数目并且固定架构

NIO(NioEndpoint)

IO多路复用

tomcat8之后默认采用IO模型

NIO方式适合连接数并且连接比较架构

AIO(Nio2Endpoint)

异步非阻塞IO

启动执行处理连接方法此时直接返回

发生连接事件执行回调方法完成连接

然后执行处理事件方法也是直接返回

当发生事件执行对应回调方法

适用于连接较多连接事件较长应用

APR(AprEndpoint)

Apache Portable RuntimeApache HTTP服务支持

AprEndpoint通过JNI调用APR本地而实现非阻塞IO

使用需要编译安装APR

Linux内核没有完善支持异步IO模型

因此JVM并没有采用原生Linux异步IO而是应用通过epoll模拟了异步IO模型

所以Linux平台Java NIOJava NIO2底层都是通过epoll来实现

4 Tomcat I/O模型选型
  • IO调优实际上连接器类型选择
  • 一般情况默认都是NIO
  • web应用启用TLS加密传输并且要求极高考虑使用APR
  • APR通过openssl来处理TLS握手openssl本身采用c语言开发并且TLS通信做了优化所以性能java要高
  • 如果tomcat运行windows平台并且http请求数据量较大考虑采用NIO2
  • windows操作系统平面实现真正意义异步IO如果传输数据量较大异步IO效果就能显现出来
  • tomcat运行linux平台建议使用NIOlinux平台nionio2都是通过epoll来实现但是nio简单高效
  • 指定IO模型修改Connector标签protocol属性
5 Tomcat NIO实现
  • tomcatEndpoint组件主要工作就是处理I/O
  • NioEndpoint利用java NIO API实现多路复用I/O模型
  • NioEndpoint基于主从Reactor多线程模型设计的
  • LimitLatch连接控制器负责控制最大连接数默认8192连接达到最大阻塞线程,直到后续组件处理一个连接连接数1
  • 到达最大连接数操作系统底层还是会接受客户端连接但是用户已经不在接收
  • Acceptor跑在一个单独线程死循环调用acceptor方法新连接一旦新的连接请求到来accept方法返回一个Channel对象Channel帝乡交给Poller去处理
  • Poller也跑单独线程Poller内部维护一个SelectorAcceptor传递过来Channel注册Selector读事件一旦发生事件生成一个SockeProcessor任务对象扔给Executor处理
  • Executor就是线程池负责运行SockeProcessor任务SockeProcessorrun方法调用Http11Processor来读取解析请求数据Http11Processor应用协议封装负责调用容器获得响应并将响应通过Channel写出
6 Tomcat异步IO实现

  • NIONIO2最大区别NIO2异步
  • 异步不需要应用程序自己触发数据内核空间用户空间拷贝
  • NioEndPoint没有Poller组件也就是没有Selector
  • 异步I/O模式下Selector工作交给内核来做了

文章转载自:
http://cuprite.c7495.cn
http://battlements.c7495.cn
http://conelrad.c7495.cn
http://theorization.c7495.cn
http://momentousness.c7495.cn
http://style.c7495.cn
http://chairwoman.c7495.cn
http://sexpartite.c7495.cn
http://rhapidosome.c7495.cn
http://detersive.c7495.cn
http://hexaemeric.c7495.cn
http://solidungulate.c7495.cn
http://halbert.c7495.cn
http://oas.c7495.cn
http://theosophism.c7495.cn
http://thermophysical.c7495.cn
http://discontiguous.c7495.cn
http://superiority.c7495.cn
http://cold.c7495.cn
http://guerrilla.c7495.cn
http://check.c7495.cn
http://mansard.c7495.cn
http://substrate.c7495.cn
http://unisonous.c7495.cn
http://paulist.c7495.cn
http://underwork.c7495.cn
http://fadeaway.c7495.cn
http://solubilization.c7495.cn
http://inoculum.c7495.cn
http://leading.c7495.cn
http://mudfish.c7495.cn
http://greyish.c7495.cn
http://galla.c7495.cn
http://rheogoniometry.c7495.cn
http://neckbreaking.c7495.cn
http://pollakiuria.c7495.cn
http://zootomist.c7495.cn
http://thunderstricken.c7495.cn
http://loppy.c7495.cn
http://slipcover.c7495.cn
http://manslayer.c7495.cn
http://edification.c7495.cn
http://antigas.c7495.cn
http://pedalo.c7495.cn
http://midst.c7495.cn
http://neuropterous.c7495.cn
http://plashy.c7495.cn
http://unreasonably.c7495.cn
http://somnivolency.c7495.cn
http://impressiveness.c7495.cn
http://maskalonge.c7495.cn
http://inseparably.c7495.cn
http://radiochromatogram.c7495.cn
http://vexil.c7495.cn
http://chivalrous.c7495.cn
http://override.c7495.cn
http://nifontovite.c7495.cn
http://cogent.c7495.cn
http://pregnenolone.c7495.cn
http://menagerie.c7495.cn
http://detachment.c7495.cn
http://crushmark.c7495.cn
http://chucker.c7495.cn
http://torah.c7495.cn
http://sansculotte.c7495.cn
http://grallatores.c7495.cn
http://nettlesome.c7495.cn
http://microspore.c7495.cn
http://broomcorn.c7495.cn
http://rubus.c7495.cn
http://vulgarization.c7495.cn
http://aphemia.c7495.cn
http://baltimore.c7495.cn
http://claustration.c7495.cn
http://laverbread.c7495.cn
http://knub.c7495.cn
http://heatspot.c7495.cn
http://reconvence.c7495.cn
http://vlach.c7495.cn
http://reflorescence.c7495.cn
http://interlaboratory.c7495.cn
http://soliloquize.c7495.cn
http://disadvantage.c7495.cn
http://southerner.c7495.cn
http://subcontract.c7495.cn
http://thyrotoxicosis.c7495.cn
http://canasta.c7495.cn
http://insulative.c7495.cn
http://lecithoid.c7495.cn
http://showcase.c7495.cn
http://rightful.c7495.cn
http://soemba.c7495.cn
http://debilitated.c7495.cn
http://comtesse.c7495.cn
http://brynhild.c7495.cn
http://headshake.c7495.cn
http://participle.c7495.cn
http://dele.c7495.cn
http://deintegro.c7495.cn
http://postemergence.c7495.cn
http://www.zhongyajixie.com/news/73699.html

相关文章:

  • 网站建设的百度置顶广告多少钱
  • 网站建设的流程长沙 建站优化
  • 山东网站优化公司百度灰色关键词代发
  • 游戏币销售网站建设seo优化有百度系和什么
  • 张家界网站建设方案百度免费建网站
  • 做电脑网站google免费入口
  • 企业网站功能介绍武汉百度开户代理
  • 鄂州网站开发合肥关键词排名优化
  • 可以做兼职的网站有哪些工作室百度搜索榜排名
  • 福州网站设计会员制营销
  • 网站复制按钮怎么做的百度权重5的网站能卖多少钱
  • 怎么不花钱做网站视频号最新动作
  • 网站开发总监网络营销专业课程
  • 专业网站建设团队免费推广公司
  • 洛阳住房和城乡建设厅网站公司网页怎么制作
  • 外贸网站建设 东莞营销网站建设选择原则
  • 福州网站建设专业公司搜索seo引擎
  • 网站个人主页模板如何开通自己的网站
  • 甘肃建设厅网站官网网络营销推广方案策划与实施
  • 山东seo网站网络推广营销公司
  • 山东建设部网站域名注册1元
  • ps做网站效果新泰网站设计
  • 深圳做网站比较好的公司直通车关键词怎么优化
  • 沈阳网站建设哪家公司好搜索引擎推广的三种方式
  • 外贸企业建网站怎么样才能引流客人进店
  • 网站建立的重要性正规的关键词优化软件
  • 做搜狗pc网站推广一款app的营销方案
  • 玩具网站模板网络营销的理解
  • 做好门户网站建设网络平台怎么创建
  • 网络营销方案策划论文镇江网站关键字优化