在博客上,一个简单的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. TextView于getCompoundDrawables()使用演示样本的方法

    MainActivity例如下列: package cc.testcompounddrawables; import android.app.Activity; import android.grap ...

  2. grep之字符串搜索算法Boyer-Moore由浅入深(比KMP快3-5倍)(转)

    这篇长文历时近两天终于完成了,前两天帮网站翻译一篇文章“为什么GNU grep如此之快?”,里面提及到grep速度快的一个重要原因是使用了Boyer-Moore算法作为字符串搜索算法,兴趣之下就想了解 ...

  3. machine learn in python 第二章2.1.1

    1大约 sklearn.datasets from sklearn.datasets import load_iris import numpy as np data = load_iris() da ...

  4. Cloudera impala简单介绍及安装具体解释

    一.Impala简单介绍 Cloudera Impala对你存储在Apache Hadoop在HDFS,HBase的数据提供直接查询互动的SQL.除了像Hive使用同样的统一存储平台,Impala也使 ...

  5. 2年SQL Server DBA调优方面总结

    原文:2年SQL Server DBA调优方面总结 2年SQL Server DBA调优方面总结 当2年dba 我觉得,有些东西需要和大家分享探讨,先书单. 书单 1.<深入解析SQL Serv ...

  6. main真正的形状函数

    我们经常使用的像 int main()这种形式,但main长身体机能完全到底是什么样子? 以下这个main函数的形式可能有些出乎我们的意料: int main(int argc, char *argv ...

  7. (大数据工程师学习路径)第五步 MySQL参考手册中文版----MySQL数据库管理

    一.MySQL权限管理 账户权限信息被存储在mysql数据库的user.db.host.tables_priv.columns_priv和procs_priv表中. GRANT和REVOKE语句所用的 ...

  8. Android MenuItem 设置文本颜色-TextColor设置

    前面一直在寻找 MenuItem文字颜色设置. 我发现API唯一的背景颜色设置. .. 因此,找到下面的方法.在OverFlow看到. 在onCreateOptionsMenu一下. 使MenuIte ...

  9. Cocos2d-x 文本渲染

     文本渲染: CCLabelAtlas.CCLabelBMFont.CCLabelTTF类都是继承 CCLabelProtocol类,即能够使用系统字,也能够自己定义渲染字体. CCLabelAtla ...

  10. POI使用汇总

    POI它是apache下一步行为office有关格源工具.我们近期在使用这个框架实现Excel格式数据的导入和导出功能.这里进行一个使用总结.POI提供两种读写API模型:事件模型(eventmode ...