`
hanhg
  • 浏览: 137255 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

Grizzly学习笔记

阅读更多
1、介绍Grizzly
Grizzly是一种应用程序框架,专门解决编写成千上万用户访问服务器时候产生的各种问题。

2、什么是Grizzly?
使用JAVA NIO作为基础,并隐藏其编程的复杂性。容易使用的高性能的API。带来非阻塞socketd到协议处理层。利用高性能的缓冲和缓冲管理使用高性能的线程池

3、Grizzly与Mina的性能比较
比较结果Grizzly比Mina更好。

4、Grizzly的HTTP性能
支持的并发客户端:平均响应时间:8S 90%时间在3S内出错率在0.1%以下。

5、Grizzly的历史
在GlassFish项目中于2004年诞生。
后来为Grizzly 1.0。
Grizzly1.0跟Sun Java System Application Server8.1,8.2和所有的GlassFish版本。用来代替本地的Sun WebServer运行时。
开始目的是建构一个HTTP Web服务器,用来代替Tomcat的Coyote连接器和Sun WebServ er6.1。 Grizzly1.0在2006年的时候变得相当流行。
多数协议实现都基于它。
但是Grizzly1.0有HTTP协议的特定实现逻辑包含在传送层中。
主要类SelectorThread包含若干的HTTP的处理,如文件cache,请求监控等。
为了使用框架,需要扩展SelectorThread,例如JettySelectorThread,SSLSelectorThread。 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)
Grizzly1.5于2006年开始开发。
Grizzly1.5的目标:
删除所有的HTTP或者GlassFish的依赖
所有1.0的应用仍能在1.5上工作
支持Grizzly1.0时候的性能优化。
不依赖于任何的第三方软件。
2007年2月6日Grizzly开源了。

6、控制器
Controller是主要的进入点,Controller由下面部分构成:
SelectorHandler
SelectionKeyHandler
ProtocolChainInstanceHandler
ProtocolChain
Pipeline 这些组件在Grizzly框架中都是可以配置的。

7、SelectorHandler
SelectorHandler处理所有的nio。channel。Selector操作。可以处理1个或多个的Selector。

8、SelectionKeyHandler
用来处理SelectionKey的生命周期。例如取消,注册,或者关闭SelectionKeys由SelectionKeyHandler来处理。

9、InstanceHandler
InstanceHandler 用来创建或者缓冲几个ProtocolChain。 InstanceHandler决定有状态或者无状态的协议链是否需要被创建。注意:InstanceHandler重命名为 ProtocolChainInstanceHandler。

10、Pipeline
一个接口用来封装各种线程池。 Grizzly1.5包含了几个的管道的实现。最佳性能实现的管道是默认配置的管道。

11、ProtocolChain
协议链实现责任链模式。协议链由若干的协议过滤器组合成。注意:协议连的所有者必须调用postExecute()方法。

12、ProtocolFilter
协议过滤器由两个方法构成:execute和postExecute。
Context包含了动态的计算状态。
协议过滤器封装了一个将要工作的单元。
目的是检查或修改状态的改变。 独立的协议链可以被集成到协议链。 当使用默认的协议链的时候,协议过滤器应该设计成线程安全的。
通常,这表示协议过滤器应该不包含维护状态信息。 维护状态信息应该由ProtocolContext来维护,并通过method和postExecute来传递。

14、谁在使用Grizzly?
Jetty
Alaska
Tango
Jruby on Grizzly
php on Grizzly
Ning
Comet、Cometd

15、谁在寻找或投资Grizzly?
Sun Java System Message Queue
Sun JDK ORB
GlassFish ORB
Derby、JavaDB 等。

16、类的关系图


Tags: Java  框架 
分享到:
评论
2 楼 huiqinbo 2012-03-29  
这个不是Grizzly api介绍的用途不大
1 楼 jamesqiu 2009-06-04  
Grizzly的API太雷人了, 每个版本都有巨大的变化1.8-1.9-2.0
基本就是推翻重来, 原来的例子中的api好多都消失了, 没见过这么玩的, 文档太差了, 就是几个blog, 还不标明使用的版本.

相关推荐

    grizzly

    这些源代码文件可供开发者深入学习Grizzly的内部实现,包括如何处理HTTP请求,如何利用NIO进行高效的网络通信,以及如何支持WebSocket协议。通过阅读和分析源代码,开发者可以更好地理解和定制Grizzly的功能,以适应...

    Grizzly_Architecture

    - 这些API极大地降低了开发人员的学习成本,并提高了程序的整体性能。 3. **HTTP扩展:** - Grizzly支持异步请求处理机制,即可以处理非阻塞式的HTTP请求。 - 实现了Comet技术,这是一种实现实时数据推送的技术...

    Grizzly 2.3.17 API文档CHM版

    2014年10月24日最新Grizzly 2.3.17 API文档CHM版

    grizzly-websockets-2.3.4.zip

    通过阅读和学习这些源代码,我们可以掌握如何将Riak PB集成到Grizzly WebSockets或其他Java应用中,实现自定义的通信协议,从而提升系统的整体性能。 总的来说,Grizzly WebSockets 2.3.4和Riak PB都是开源项目,...

    Ubuntu13.04安装Grizzly版本的OpenStack

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

    grizzly-websockets-chat-2.3.zip

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

    grizzly-http-server-monitoring-2.3.9.zip

    开源项目意味着Grizzly HTTP Server Monitoring 2.3.9 和 Play2框架的Play Velocity插件的源代码都是公开的,可供任何人查看、学习、修改和分发。这种开放源码的方式促进了社区协作,鼓励开发者贡献代码,修复错误,...

    grizzly-http-samples-2.3.13.zip

    对于Grizzly HTTP Samples,这可能意味着开发者可以学习和参考其内部实现,以理解如何有效利用Grizzly进行网络编程。对于Lift-jQuery-Module,这意味着开发者可以定制模块以满足特定的项目需求,或者贡献代码回社区...

    grizzly-framework-monitoring-2.3.14.zip

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

    grizzly-core-2.1.4.jar 下载

    Dubbo的核心jar包,grizzly-core-2.1.4.jar 下载,源码版本为2.5.4开发版

    grizzly-http-webserver-1.9.59.zip

    通过分析这些代码,开发者可以学习如何将Atmosphere集成到Grizzly中,创建实时Web应用。同时,这个版本可能修复了一些已知问题,提升了整体的稳定性和兼容性。 总的来说,`grizzly-http-webserver-1.9.59.zip`和...

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

    此外,由于其轻量级特性,Grizzly在性能方面表现出色,适合高并发的Web应用。 接下来,我们转向“portlettester”项目。PortletTester是一个专为portlet开发人员设计的单元测试框架,它遵循JSR168(portlet 1.0)和...

    grizzly-http-ajp-2.3.10.zip

    Grizzly 是一个开源的网络应用框架,由 Oracle 公司开发,主要用于构建高性能、轻量级的网络服务器和客户端。AJP(Apache JServ Protocol)是 Apache 服务器与应用服务器之间通信的一种协议,常用于负载均衡和反向...

    grizzly-http-server-2.2.21.zip

    【标题】"Grizzly HTTP Server 2.2.21" Grizzly HTTP Server 是一个开源的、高性能的网络应用框架,由Java开发,主要用于构建基于...通过Groovy的简洁语法和Grizzly的高性能特性,可以高效地开发和维护这类系统。

    grizzly初探

    学习和掌握 Grizzly,不仅能提升我们的网络编程能力,还能帮助我们构建出高效、可扩展的服务。在实际项目中,可以结合 Grizzly 的特性,例如与 Jersey(JAX-RS 实现)结合,构建 RESTful API 服务,或者利用 ...

    grizzly-framework-2.1.4.jar下载

    Dubbo的核心jar包, grizzly-framework-2.1.4.jar下载,源码版本为2.5.4开发版

    grizzly-http-server-2.2.16.jar

    java运行依赖jar包

    开源项目-matroskin13-grizzly.zip

    通过研究和使用Grizzly,Go开发者可以学习到如何在没有泛型的情况下设计和实现高效、灵活的集合操作,这将对他们的Go编程技能有显著提升。同时,参与开源项目也能让他们了解和实践软件开发的最佳实践,提升协作和...

    grizzly:机器人和台式机通用的轻量级Grizzly软件包

    "Grizzly: 机器人与台式机通用的轻量级软件包" Grizzly是一款专为机器人和台式机设计的轻量级软件包,旨在提供高效、灵活且跨平台的解决方案。它允许开发者在各种环境下进行机器人应用的开发,无论是在机器人硬件上...

Global site tag (gtag.js) - Google Analytics