`
javasogo
  • 浏览: 1821392 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

开源HTTP引擎Grizzly 中的 线程池 实现技术细节

阅读更多

开源HTTP引擎Grizzly 中的 线程池 实现技术细节

[什么是Grizzly]

Grizzly

Grizzly
是一种应用程序框架,专门解决写成千上万访问生的各种问题。使用JAVA NIO,并藏其程的复杂性。容易使用的高性能的API来非阻塞socketd协议处。利用高性能的冲和冲管理使用高性能的线程池。

Grizzly


GlassFish目中于2004生。后来Grizzly 1.0Grizzly1.0Sun Java System Application Server8.18.2和所有的GlassFish版本。用来代替本地的Sun WebServer运行
始目的是建构一个HTTP Web器,用来代替TomcatCoyote接器和Sun WebServ er6.1 Grizzly1.02006年的得相当流行。多数协议实现都基于它。但是Grizzly1.0HTTP协议的特定实现逻辑包含在中,主 要SelectorThread包含若干的HTTP理,如文件cache控等。
了使用框架,需要SelectorThread,例如JettySelectorThreadSSLSelectorThread Grizzly1.0混合了展和实现然如此,但Grizzly1.0仍然是很好的实现,有下面几个协议利用了Grizzly1.0
JRuby On Grizzly
Alaska
HTTP BC
GlassFishV3
的微内核
Phobos GlassFish
SOAP
Comet
Cometd
AsyncWeb
GlassFishV2
Sun Web2.0 Developer pack(REST Http Server)


Grizzly
相关资源

https://grizzly.dev.java.net/

[Grizzly的运行机制]

以上图片的简要说明

① Pipeline相关

com.sun.enterprise.web.connector.grizzly里面大量「Pipeline之类的class例如、「PipelineKeepAlivePipelineThreadPoolExecutorPipelineLinkedListPipeline之类

Pipeline的含义是ThreadPoolWrapper」、也就是说ThreadPool中配置和指示的控制类

Pipeline里面有着预先被分配好的thread pool task list

Web上过来的request请求到达服务器的时候,特定Pipeline上预先分配好的thread pool中提取thread以供使用

thread pool 中提供thread的算法,下次描述

  ② SelectorThread 相关

com.sun.enterprise.web.connector.grizzly里面有个SelectorThread的类

    这个类是Grizzly入口所有的HTTP申请都会被发送到这个类里面

  ③ Task 相关

   「AcceptTask」、「ProcessTask」、「ReadTask之类的类型是与此相关的

   主要的功能是从Requset中分析得到有用的数据

   主要的算法如下

◎ ContentLengthAlgorithm

◎ SeekHeaderAlgorithm

◎ StateMachineAlgorithm

◎ NoParsingAlgorithm

[那么让我们一起来研究研究Thread Pool的实现细节吧]

GlassFish启动的时候GrizzlySelectorThread同时被启动开始接受Request

Class名:SelectorThread

函数名:initEndpoint

説明: SelectorThread启动函数

Class名:SelectorThread

函数名:initPipeline

説明: 初期化Pipeline

因为不能填图 所以就不发代码了~~~~

現在的Grizzly版本里面、Thread Pool的算法只有LinkedListPipelineThreadPoolExecutorPipeline

分享到:
评论

相关推荐

    grizzly-http-server-monitoring-2.3.9.zip

    Grizzly HTTP Server Monitoring 2.3.9 是一个开源项目,它提供了对Grizzly HTTP服务器的监控功能。Grizzly 是一个高性能、轻量级的Java网络应用框架,主要用于构建HTTP服务器、Servlet容器和其他网络服务。监控组件...

    grizzly

    标题中的“grizzly”指的是Grizzly,一个由Sun Microsystems(现为Oracle)开发的开源网络应用框架,主要用于构建高性能、可扩展的网络服务器。Grizzly是Java平台上的一个组件,它提供了一组灵活且强大的API,可以...

    开源项目-matroskin13-grizzly.zip

    Grizzly项目就是为了解决这个问题而诞生的,它通过一套精心设计的接口和类型定义,提供了泛型般的集合操作体验,使得开发者可以在没有内置泛型支持的Go中实现类似Java或C#中的泛型功能。 在Grizzly项目中,你可以...

    grizzly-http-webserver-1.9.59.zip

    《Grizzly HTTP Web服务器在Atmosphere开源项目中的应用与实践》 Atmosphere是一个流行的开源项目,专注于实现实时Web应用程序,它充分利用了HTTP、WebSocket等协议的优势,为开发者提供了一个灵活且高效的异步通信...

    grizzly-http-samples-2.3.13.zip

    【标题】"Grizzly HTTP Samples 2.3.13" 是一个开源项目,它包含了一系列使用Grizzly HTTP服务器框架的示例应用。Grizzly是Java的一个高性能、轻量级的网络应用框架,由Oracle公司开发,常用于构建HTTP服务器、...

    Grizzly_Architecture

    - Grizzly支持Comet技术,能够实现实时数据推送。 - 这对于需要频繁更新客户端数据的应用来说非常有用,如股票交易系统、在线游戏等。 3. **高性能服务端开发:** - 除了Web服务器之外,Grizzly还适用于其他高...

    grizzly-http-servlet-extras-2.3.8-beta1.zip

    《Grizzly HTTP Servlet Extras与PortletTester:开源项目的单元测试框架》 在IT行业中,单元测试作为软件开发的重要环节,...在实际开发中,我们可以根据项目需求选择合适的技术栈,充分利用这些开源项目带来的优势。

    grizzly-framework-monitoring-2.3.14.zip

    通过对 jmxutils.zip 中的源代码进行学习,我们可以更深入地理解 JMX 的工作原理,同时也能更好地利用 JmxUtils 在实际项目中实现高效、精细的监控。在开源项目的实践中,JmxUtils 成为了提升系统管理能力不可或缺的...

    grizzly-http-server-2.2.21.zip

    开源项目意味着Grizzly HTTP Server和MessageServiceClient的源代码都是公开的,可以在社区中自由分发、修改和使用。这种开放性鼓励了开发者之间的协作,促进了项目的持续改进和创新。用户可以查看源代码,了解其...

    grizzly-websockets-chat-2.3.zip

    综上所述,"grizzly-websockets-chat-2.3.zip" 和 "osgi-kernel.zip" 提供了关于使用Grizzly实现WebSocket聊天应用以及基于OSGi的开源运行时环境的学习材料。开发者可以通过研究这些代码,深入了解网络编程、模块化...

    grizzly-websockets-2.3.4.zip

    Grizzly WebSockets 模块使得开发者能够方便地在Web应用中实现WebSocket协议,这是一种双向通信协议,允许客户端和服务器进行全双工通信,极大地提升了实时数据传输的效率。版本2.3.4在稳定性和性能上进行了优化,为...

    grizzly-http-ajp-2.3.10.zip

    5. **开源文化与许可证**:开源项目促进了技术的共享和创新,允许开发者基于现有项目进行扩展和改进。Grizzly 和 apt-repo 插件遵循的开源许可证可能包括 GPL、Apache License、MIT 等,具体需查看项目文档以了解...

    在Glassfish v2ur1 中测试grizzly comet chat demo

    【标题】"在Glassfish v2ur1 中测试grizzly comet chat demo"涉及的主要知识点是Grizzly框架、Comet技术以及Glassfish应用服务器的使用。Grizzly是一个开源的网络应用框架,由Java开发,用于构建高性能、可扩展的...

    grizzly-http-jaxws-samples-2.2.10.zip

    在这个版本中,2.2.10,Grizzly HTTP JAX-WS Samples提供了多个示例,帮助开发者理解如何将JAX-WS与Grizzly服务器集成,包括服务的发布、调用,以及处理各种Web服务交互的细节。这些示例对于初学者来说非常有用,...

    grizzly-http-ajp-1.9.42.zip

    【标题】"grizzly-http-ajp-1.9.42.zip" 是一个与开源项目相关的压缩包,其中包含了Grizzly HTTP服务器的AJP(Apache JServ Protocol)模块的一个版本,具体为1.9.42。Grizzly是Oracle公司开发的一个轻量级、高性能...

    Ubuntu13.04安装Grizzly版本的OpenStack

    在本文中,我们将详细介绍如何在Ubuntu 13.04上安装Grizzly版本的OpenStack。OpenStack是一个开源云计算平台,用于构建公共云和私有云。Grizzly是OpenStack的一个重要版本,提供了多种服务,如计算、存储和网络管理...

    开源技术讲座Sun 济南地区开源大使田贯升

    标题和描述均提到了“开源技术讲座”,以及Sun公司济南地区的开源大使田贯升,这表明讲座的主题聚焦于开源技术和Sun公司的相关产品,尤其是JavaEE5及其应用服务器GlassFish的介绍。以下是对讲座中提到的关键知识点的...

Global site tag (gtag.js) - Google Analytics