在博客上,一个简单的AIOweb来样加工。查看AIO异步处理,依靠操作系统完成IO操作Proactor处理模型确实很强大,它可以实现高并发。高响应server一个很好的选择,但在tomcat中间connector理模型还依然是基于NIO的处理。当然,我觉得这可能会在以后的版本号进行改进,但还有一方面,我更觉得AIO的负载控制方面的处理可能是比較难的,由于AIO api并没有提供我们对分配线程组的处理。而仅仅是提供一个线程组,交给操作系统去解决io处理上的问题,所以,这可能会给须要复杂处理的负载均衡带来一定的控制难度

对于tomcat的connector处理,我推荐看一下这篇博客。分析的比較到位http://liudeh-009.iteye.com/blog/1561638

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hlbnh1ZWd1aTEyMzQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

tomcat的处理模型就是这种,通过acceptor去accept过来的channel,再将channel注冊到pollers中的selector,去select以及后面进行业务IO处理。接下来就是servlet引擎的工作 ,对channel的request进行响应。

好吧。接下来介绍一下我的实现吧,我的样例中是採用静态页面作为响应,假设有哪位朋友知道假设增加servlet,以及像tomcat一样servlet引擎的东西,请不吝赐教

类的结构图,这里就不贴代码了。有兴趣的朋友。能够到http://download.csdn.net/detail/chenxuegui123/7330269下载

我的处理模型还是差点儿相同的,都是基于把acceptor和业务IO处理的worker分离开,从而实现更高的响应速度,而和tomcat实现上又有些差别。在acceptor线程组中的每一个acceptor中我的实现并非让非堵塞的ServerSocketChannel一直accept,再对SocketChannel进行处理。而是通过再acceptor中增加一个selector。有操作系统通知我们感兴趣的事件的发生。(以上不贴源代码,有兴趣了解的朋友能够看一下上面的源代码,还有我的源代码下载),当然,这通过測试。在acceptor中增加selector的操作会使得并发更高

而在worker线程组中。我的每一个worker都维护这一个堵塞队列,对须要处理的io进行缓存,而不是在增加selector。由操作系统通知我们感兴趣时间的发生,由于在本例中是基于静态页面的响应,所以都是对于每一个请求即可响应。简单点,没有tomcat来的那么复杂

当然,经100000个并发响应測试。这个处理模型的并发速度还是不错的

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hlbnh1ZWd1aTEyMzQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="400" height="300" alt="">

版权声明:本文博主原创文章,博客,未经同意不得转载。

基于tomcat为了应对高并发模型实现webserver的更多相关文章

  1. Linux下配置tomcat+apr+native应对高并发

    摘要:在慢速网络上Tomcat线程数开到300以上的水平,不配APR,基本上300个线程狠快就会用满,以后的请求就只好等待.但是配上APR之后,Tomcat将以JNI的形式调用Apache HTTP服 ...

  2. (转)Linux下配置tomcat+apr+native应对高并发

    摘要:在慢速网络上Tomcat线程数开到300以上的水平,不配APR,基本上300个线程狠快就会用满,以后的请求就只好等待.但是配上APR之后,Tomcat将以JNI的形式调用Apache HTTP服 ...

  3. Memcached笔记——(四)应对高并发攻击【转】

    http://snowolf.iteye.com/blog/1677495 近半个月过得很痛苦,主要是产品上线后,引来无数机器用户恶意攻击,不停的刷新产品各个服务入口,制造垃圾数据,消耗资源.他们的最 ...

  4. Linux中,Tomcat 怎么承载高并发(深入Tcp参数 backlog)

    一.前言 这两天看tomcat,查阅 tomcat 怎么承载高并发时,看到了backlog参数.我们知道,服务器端一般使用mq来减轻高并发下的洪峰冲击,将暂时不能处理的请求放入队列,后续再慢慢处理.其 ...

  5. 《即时消息技术剖析与实战》学习笔记10——IM系统如何应对高并发

    一.IM 系统的高并发场景 IM 系统中,高并发多见于直播互动场景.比如直播间,在直播过程中,观众会给主播打赏.送礼.发送弹幕等,尤其是明星直播间,几十万.上百万人的规模一点也不稀奇.近期随着武汉新型 ...

  6. Memcached笔记——(四)应对高并发攻击

    近半个月过得很痛苦,主要是产品上线后,引来无数机器用户恶意攻击,不停的刷新产品各个服务入口,制造垃圾数据,消耗资源.他们的最好成绩,1秒钟可以并发6次,赶在Database入库前,Cache进行Mis ...

  7. SpringCloud应对高并发的思路

    一.Eureka的高可用性 Eureka下面的服务实例默认每隔30秒会发送一个HTTP心跳给Eureka,来告诉Eureka服务还活着,每个服务实例每隔30秒也会通过HTTP请求向Eureka获取服务 ...

  8. 【Redis】1、Jedis对管道、事务以及Watch的操作来应对高并发

    对于一个互联网平台来说,高并发是经常会遇到的场景.最有代表性的比如秒杀和抢购.高并发会出现三个特点: 1.高并发读取 2.高并发写入(一致性) 3.出现超卖问题 前端如何应对? 1.缓存静态数据,例如 ...

  9. Nginx+tomcat组合实现高并发场景的动静分离和负载均衡方案

    简介 Java服务大多是跑在tomcat里,但是众所周知tomcat的并发性能没有优势(tomcat8及以上的版本可能有所改善),所以为了更好的适应高并发的应用场景,我们可以使用tomcat+ngin ...

随机推荐

  1. Ini文件帮助类

    .ini文件是什么 .ini 文件是Initialization File的缩写,就是初始化文件.在Windows系统中,其是配置文件所采用的存储格式(主要是system.ini,win.ini,sy ...

  2. MariaDb数据库管理系统的学习(一)安装示意图

    MariaDB数据库管理系统是MySQL的一个分支.主要由开源社区在维护,採用GPL授权许可.开发这个分支的原因之中的一个是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区採用分 ...

  3. poj 1975 Median Weight Bead(传递闭包 Floyd)

    链接:poj 1975 题意:n个珠子,给定它们之间的重量关系.按重量排序.求确定肯定不排在中间的珠子的个数 分析:由于n为奇数.中间为(n+1)/2,对于某个珠子.若有至少有(n+1)/2个珠子比它 ...

  4. 论docker中 CMD 与 ENTRYPOINT 的区别(转)

    Dockerfile 用于自动化构建一个docker镜像.Dockerfile里有 CMD 与 ENTRYPOINT 两个功能咋看起来很相似的指令,开始的时候觉得两个互用没什么所谓,但其实并非如此: ...

  5. Task的异步模式

    Task的异步模式 返回该系列目录<基于Task的异步模式--全面介绍> 生成方法 编译器生成 在.NET Framework 4.5中,C#编译器实现了TAP.任何标有async关键字的 ...

  6. 前端angularjs+requirejs+dhtmlx 后端asp.net webapi

    享一个前后端分离方案源码-前端angularjs+requirejs+dhtmlx 后端asp.net webapi   一.前言 半年前左右折腾了一个前后端分离的架子,这几天才想起来翻出来分享给大家 ...

  7. Angular绑定数据时转义html标签

    AngularJs在绑定数据时默认会以文本的形式出现在页面上,比如我现在有这样一段代码 <div ng-controller="testCtrl">{{data}}&l ...

  8. Class loader:static

    package classloader; public class ClassLoaderDisplayDemo { public static void main(String[] args) { ...

  9. Power Strings (poj 2406 KMP)

    Language: Default Power Strings Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 33205   ...

  10. MD5算法的原理与实现

    ***********************************************声明************************************************ 原创 ...