黑马程序员技术交流社区
标题:
Grizzly学习笔记
[打印本页]
作者:
俞帅明
时间:
2014-2-23 15:15
标题:
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 等。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2