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 框架
分享到:
相关推荐
2014年10月24日最新Grizzly 2.3.17 API文档CHM版
亲测过的Ubuntu13.04安装Grizzly版本的OpenStack
Grizzly介绍,英文版,可以了解下。
Dubbo的核心jar包,grizzly-core-2.1.4.jar 下载,源码版本为2.5.4开发版
NULL 博文链接:https://nuhajia.iteye.com/blog/656705
grizzly 是Glassfish 前端web引擎的底层实现,类似于apache mina, 但据说要比mina性能高出很多,具有研究意义
Dubbo的核心jar包, grizzly-framework-2.1.4.jar下载,源码版本为2.5.4开发版
riak_pb.zip,用于与riakriak通信的协议缓冲区协议缓冲区消息
osgi-kernel.zip,这是一个简单的osgi运行时,能够使用maven存储库
java运行依赖jar包
jmxutils.zip,导出jmx mbean使导出jmx mbean变得容易
lift-jquery-module.zip,lift-jquery-module U 2.5a jquery电梯模块
jar包,官方版本,自测可用
memcached-chart-report.zip,memcached图表报表
play-velocity-plugin.zip,Play2框架的Play Velocity插件Invelocity插件
apt-repo.zip,这个插件将您的maven build for deb文件转换为apt存储库。
portlettester.zip,portlettester是portlet的单元测试框架。它是基于jsr168和jsr286创建的。
灰熊机器人和台式机通用的轻量级Grizzly软件包
MessageServiceClient.zip,用于消息服务的groovy客户端库用于消息服务的groovy客户端库
博文链接:https://chenx.iteye.com/blog/151373