Grizzly:Java NIO框架

在Java新I/O API(NIO)出现之前,开发可扩展的服务器应用比较困难。Grizzly NIO框架的设计初衷便是帮助开发者更好地利用Java NIO API,构建强大的可扩展的服务器应用,并提供扩展框架的组件:Web框架(HTTP/S)、WebSocket、Comet等。

grizzly

核心框架

  • 内存管理:Grizzly2.0引入了以可以在运行时(runtime)提高内存管理的子系统。该子系统包括三个主要构件:
    • 缓冲区(Buffers)
    • ThreadLocal的内存池(ThreadLocal memory pools)
    • MemoryManager作为一个实用缓冲区和内存池工厂
  • I/O策略:通常我们使用一下两种方处理特定的NIO事件:在接收到的线程直接处理(Same-thread)或者交给工作线程处理(Worker-thread)。
    1. Worker-thread IOStrategy
    2. Same-thread IOStrategy
    3. 动态IOStrategy
    4. 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的目标是降低网页加载时间。

开发文档

官方网站:https://grizzly.java.net/index.html
开源地址:https://github.com/GrizzlyNIO/grizzly-mirror

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值