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

核心框架

  • 内存管理: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的目标是降低网页加载时间。

开发文档

  • 下载
  • 快速上手
  • 最佳实践
  • 代码示例
  • API文档

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

Grizzly:Java NIO框架相关推荐

  1. Java NIO框架Mina、Netty、Grizzly介绍与对比

    Java NIO框架Mina.Netty.Grizzly介绍与对比 原文地址:https://blog.csdn.net/e765741668/article/details/45234711 Min ...

  2. Java NIO框架(Java编程)

    Java NIO框架 MINA 用netty性能和链接数.并发等压力测试参数好于mina 1.NIO弥补了原来的I/O的不足,它再标准java代码中提供了高速和面向块的I/O 原力的I/O库与NIO最 ...

  3. Java NIO框架Mina、Netty、Grizzly介绍与对比(zz)

    Mina: Mina(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应 ...

  4. java nio 框架_几种Java NIO框架的比较(zz)

    问题:生活中工作中,会有人问我javaNIO框架里面 Netty Mina  xSocket Grizzly 等等哪个比较好? 在这里写一下自己的感受,也算是总结一下吧 在我的印象中.不管是什么NIO ...

  5. Java NIO框架

    NIO 全称是Non-Blocking IO或New IO,也就是非阻塞IO或新版IO. NIO的特性如下: 1.面向缓冲区(Buffer):每个Buffer 实质上是一个容器对象 每一种基本 Jav ...

  6. java grizzly_Grizzly 2.2发布 开源Java NIO框架

    Grizzly框架近日发布了2.2版本,该版本带来了相当多新特性与改进,而且加入了***WebSocket规范的实现. Grizzly是一个应用程序框架,专门用于解决编写成千上万用户访问服务器时候产生 ...

  7. Java NIO框架Mina

    2019独角兽企业重金招聘Python工程师标准>>> 真羡慕java有系列的懒人框架,虽然c也有Netty, ACE等高速网络框架,但是语言的特性,决定了java框架之间更好集成, ...

  8. Java NIO 框架 Netty 之美:粘包与半包问题

    Netty 是一个可以快速开发网络应用程序的 NIO 框架,它大大简化了 TCP 或者 UDP 服务器的网络编程.Netty 的简易和快速开发并不意味着由它开发的程序将失去可维护性或者存在性能问题,它 ...

  9. Java NIO框架Netty教程(一) – Hello Netty

    先啰嗦两句,假设你还不知道Netty是做什么的能做什么.那能够先简单的搜索了解一下.我仅仅能说Netty是一个NIO的框架,能够用于开发分布式的Java程序.详细能做什么,各位能够尽量发挥想象.技术, ...

最新文章

  1. python3笔记_python3 笔记
  2. 交互设计实用指南系列 – 我们眼中的交互设计
  3. FPS手游《战地先锋》性能案例精讲
  4. 搭建elsticsearch集群 报错 failed to send join request to master [{data-node-0}(已经测试)
  5. 生成静态页面的五种方案 收藏
  6. redhat7扩容linux,vmware中Centos 7 linux的LVM磁盘扩容
  7. DeeCamp,(可能是)全球最好的 AI 夏令营
  8. 计算机关闭远程桌面 共享功能,win7旗舰版系统优化禁止用远程桌面共享的解决方法...
  9. 2019最新QQ音乐Api
  10. 汉得能效中台 || Choerodon猪齿鱼商业版V0.23正式上线!
  11. 气象基础知识matlab,气象类专业Matlab课程教学探索与思考
  12. 二十四节气-秋分 | 文案、海报
  13. ASCII、Unicode、UTF-8 和 Base64 等编码
  14. android octet stream,Java MimetypesFileTypeMap始终在Android模拟器上返回application/octet-stream...
  15. Unity3D动画帧事件
  16. 【离散数学】点割集(割点集)与边割集详解
  17. 短视频开发SDK 架构设计实践
  18. 二分类最优阈值确定_一文搞懂分类算法中常用的评估指标
  19. Neo4j CQL-(18)IN操作符
  20. linux改文件权限为root,Linux创建root不可修改删除而只可追加权限的文件

热门文章

  1. Google拍电影啦
  2. 定时器的使用/清除,关闭页面的清除
  3. 【开发/调试工具】【Windows】嵌入式程序员常用工具类软件/网址一览
  4. 基于Apriori算法的网上图书销售ssm java毕业设计
  5. 光影魔术手--不失真压缩图片的方法
  6. 如何删掉计算机里的网络驱动器,电脑问题电脑目录多2个cd驱动器,怎么删除 – 手机爱问...
  7. python输出type_Python语句print(type(1/2))的输出结果是_____
  8. Mendeley教程(3)引用各种文献
  9. 靠这几个裂变工具和玩法,社区电商开了3300家店,融资10亿元
  10. JMSCorrelationID 艹草艹