Grizzly:Java NIO框架
生活随笔
收集整理的這篇文章主要介紹了
Grizzly:Java NIO框架
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在Java新I/O API(NIO)出現(xiàn)之前,開發(fā)可擴展的服務器應用比較困難。Grizzly NIO框架的設計初衷便是幫助開發(fā)者更好地利用Java NIO API,構建強大的可擴展的服務器應用,并提供擴展框架的組件:Web框架(HTTP/S)、WebSocket、Comet等。
核心框架
- 內(nèi)存管理:Grizzly2.0引入了以可以在運行時(runtime)提高內(nèi)存管理的子系統(tǒng)。該子系統(tǒng)包括三個主要構件:
- 緩沖區(qū)(Buffers)
- ThreadLocal的內(nèi)存池(ThreadLocal memory pools)
- MemoryManager作為一個實用緩沖區(qū)和內(nèi)存池工廠
- I/O策略:通常我們使用一下兩種方處理特定的NIO事件:在接收到的線程直接處理(Same-thread)或者交給工作線程處理(Worker-thread)。
- Worker-thread IOStrategy
- Same-thread IOStrategy
- 動態(tài)IOStrategy
- Leader-follower IOStrategy
- 傳輸和連接:Transport和Connection是Grizzly2.3的核心網(wǎng)絡API。
- Transport定義了網(wǎng)絡傳輸方式如TCP、UDP,包括相關資源(線程池、內(nèi)存管理器等)和嵌套連接的缺省配置。
- Connection在Grizzly2.3代表一個TCP或UDP的單一網(wǎng)絡連接(很像socket)。
- Transport和Connection是一對多的關系。
- 過濾器鏈和過濾器:過濾器鏈顧名思義就是多個過濾器組成鏈。每個過濾器表示一個要執(zhí)行的處理單元,用于檢查并(或)修改由FilterChainContext表示的一個事務的狀態(tài)。
- 核心配置:核心框架配置的要點是Transport實例及其相關線程池。
- 端口統(tǒng)一:有時由于某些管理限制我們只能使用一個端口來發(fā)布多個服務,根據(jù)請求重定向到相應服務。Grizzly中的“端口統(tǒng)一”就是這個問題的解決方案。
- 監(jiān)控:Grizzly提供了監(jiān)控框架內(nèi)部關鍵組件的功能,且允許通過自定義擴展監(jiān)控組件。
HTTP組件
- 核心HTTP框架:Grizzly2.3 HTTP框架提供了服務器和客戶端的編解碼HTTP請求響應數(shù)據(jù)的功能。除了編解碼器本身,框架還包括基本HTTP原語和簡化協(xié)議相關工作的工具類。
- HTTP服務器框架
- 簡單的服務器API使Grizzly可以輕松嵌入應用程序。
- 類似Servlet規(guī)范的抽象:HttpHandler (Servlet), Request (HttpServletRequest), Response (HttpServletResponse)。
- 通過響應掛起/恢復機制提供處理長時間運行的HTTP事務的能力。
- 支持非阻塞IO流。
- 靜態(tài)內(nèi)容的使用文件緩存。
- HTTP服務器框架擴展
- Comet
- JAXWS:從2.1.2版本開始Grizzly通過HTTP服務器框架支持JAX-WS web服務。
- WebSockets:Grizzly實現(xiàn)了RFC 6455的要求,同時也支持此協(xié)議的舊版本。這對于沒有實現(xiàn)最終草案規(guī)范的客戶端很有用。
- AJP:從2.1版本開始Grizzly開始支持AJP1.3。
- SPDY:從2.3版本開始Grizzly支持SPDY/3。SPDY的目標是降低網(wǎng)頁加載時間。
開發(fā)文檔
- 下載
- 快速上手
- 最佳實踐
- 代碼示例
- API文檔
官方網(wǎng)站:https://grizzly.java.net/index.html
開源地址:https://github.com/GrizzlyNIO/grizzly-mirror
總結
以上是生活随笔為你收集整理的Grizzly:Java NIO框架的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vscode wamp php,在WAM
- 下一篇: 身份证15转18 API数据接口