Java游戏核心架构之通信架构
生活随笔
收集整理的這篇文章主要介紹了
Java游戏核心架构之通信架构
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
通信框架選擇
Java游戲通信一般是使用目前兩個比較流行的底層通信架構:Netty和Mina。
有意思的是這兩個框架都是出自同一個人之手【Trustin Lee】,這兩個框架的線程模型基本是一致的都是采用了Reactors in threads模型,即Main Reactor + Sub Reactors的模式。由main reactor處理連接相關的任務:accept、connect等,當連接處理完畢并建立一個socket連接(稱之為session)后,給每個session分配一個sub reactor,之后該session的所有IO、業務邏輯處理均交給了該sub reactor。每個reactor均是一個線程,sub reactor中只靠內核調度,沒有任何通信且互不打擾。
在游戲服務器開發過程中上面的兩種框架都有企業在使用,但是考慮到Mina目前的社區不夠活躍且Mina封裝比較簡單無法滿足定制化的需求,因此我們在開發的過程中使用的是Netty作為底層通信框架。
Netty的架構
Netty 功能特性如下:
- 傳輸服務,支持 BIO 和 NIO。
- 容器集成,支持 OSGI、JBossMC、Spring、Guice 容器。
- 協議支持,HTTP、Protobuf、二進制、文本、WebSocket 等一系列常見協議都支持。還支持通過實行編碼解碼邏輯來實現自定義協議。
- Core 核心,可擴展事件模型、通用通信 API、支持零拷貝
總結
以上是生活随笔為你收集整理的Java游戏核心架构之通信架构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SRTF最短剩余时间优先调度C语言实现
- 下一篇: Java-通过IP地址获得域名和主机名