【JAVA之Grizzly 介绍】

Writing scalable server applications in the Java™ programming language has always been difficult. Before the advent of the Java New I/O API (NIO), thread management issues made it impossible for a server to scale to thousands of users. The Grizzly NIO framework has been designed to help developers to take advantage of the Java™ NIO API. Grizzly’s goal is to help developers to build scalable and robust servers using NIO as well as offering extended framework components: Web Framework (HTTP/S), WebSocket, Comet, and more!




Core Framework

Memory Management

I/O Strategies

Transports and Connections

FilterChain and Filters

Core Configuration

Port Unification

Monitoring

Best Practices

扫描二维码关注公众号,回复: 312963 查看本文章

Quick Start

Samples

HTTP Components

Core HTTP Framework

HTTP Server Framework

HTTP Server Framework Extras

Comet

JAXWS

WebSockets

AJP

MAIN



 

核心框架

内存管理:Grizzly2.0引入了以可以在运行时(runtime)提高内存管理的子系统。该子系统包括三个主要构件:

缓冲区(Buffers)

ThreadLocal的内存池(ThreadLocal memory pools)

MemoryManager作为一个实用缓冲区和内存池工厂

I/O策略:通常我们使用一下两种方处理特定的NIO事件:在接收到的线程直接处理(Same-thread)或者交给工作线程处理(Worker-thread)。

Worker-thread IOStrategy

Same-thread IOStrategy

动态IOStrategy

Leader-follower IOStrategy

传输和连接:Transport和Connection是Grizzly2.3的核心网络API。

Transport定义了网络传输方式如TCP、UDP,包括相关资源(线程池、内存管理器等)和嵌套连接的缺省配置。

Connection在Grizzly2.3代表一个TCP或UDP的单一网络连接(很像socket)。

Transport和Connection是一对多的关系。

过滤器链和过滤器:过滤器链顾名思义就是多个过滤器组成链。每个过滤器表示一个要执行的处理单元,用于检查并(或)修改由FilterChainContext表示的一个事务的状态。

核心配置:核心框架配置的要点是Transport实例及其相关线程池。

端口统一:有时由于某些管理限制我们只能使用一个端口来发布多个服务,根据请求重定向到相应服务。Grizzly中的“端口统一”就是这个问题的解决方案。

监控:Grizzly提供了监控框架内部关键组件的功能,且允许通过自定义扩展监控组件。

HTTP组件

核心HTTP框架:Grizzly2.3 HTTP框架提供了服务器和客户端的编解码HTTP请求响应数据的功能。除了编解码器本身,框架还包括基本HTTP原语和简化协议相关工作的工具类。

HTTP服务器框架

简单的服务器API使Grizzly可以轻松嵌入应用程序。

类似Servlet规范的抽象:HttpHandler (Servlet), Request (HttpServletRequest), Response (HttpServletResponse)。

通过响应挂起/恢复机制提供处理长时间运行的HTTP事务的能力。

支持非阻塞IO流。

静态内容的使用文件缓存。

HTTP服务器框架扩展

Comet

JAXWS:从2.1.2版本开始Grizzly通过HTTP服务器框架支持JAX-WS web服务。

WebSockets:Grizzly实现了RFC 6455的要求,同时也支持此协议的旧版本。这对于没有实现最终草案规范的客户端很有用。

AJP:从2.1版本开始Grizzly开始支持AJP1.3。

SPDY:从2.3版本开始Grizzly支持SPDY/3。SPDY的目标是降低网页加载时间。

猜你喜欢

转载自gaojingsong.iteye.com/blog/2392135
今日推荐