pomelo 學習

2019-01-06基於 Node.js 的遊戲服務端框架

 0.3 2019.01.06 21:08 字數 1423 閱讀 576評論 0喜歡 2

今天跟前端吃飯的時候,說到今天行業發展,就業前景的時候,他跟我提到了一點:網易有用node.js來做服務端的接口,我回來搜素百度瞭解了一下,發現確實有這麼一說,用node.js來做後端服務器,不過是用來做遊戲的服務端。今天要了解下。以備後面自己有用到。

Pomelo:網易開源基於 Node.js 的遊戲服務端框架

Pomelo是基於 Node.js 的高性能、分佈式遊戲服務器框架。它包括基礎的開發框架和相關的擴展組件(庫和工具包),可以幫助你省去遊戲開發枯燥中的重複勞動和底層邏輯的開發。Pomelo不但適用於遊戲服務器開發, 也可用於開發高實時 Web 應用,它的分佈式架構可以使 Pomelo 比普通的實時 Web 框架擴展性更好。

 

Pomelo 特性

快速、易上手的遊戲開發模型和api

高可伸縮的多進程架構, 支持MMO的場景分區和其它各類分區策略

方便的服務器擴展機制,可快速擴展服務器類型和數量

方便的請求、響應、廣播、服務器通訊機制, 無需任何配置

注重性能,在性能、可伸縮性上做了大量的測試、優化

提供了較多擴展組件,包括遊戲開發常用的庫和工具包

提供了完整的MMO demo代碼(客戶端html5),可以作爲很好的開發參考

基於socket.io開發,支持socket.io支持的多種語言客戶端

Pomelo 的框架介紹

  Pomelo Framework的組成架構如圖所示:

 

Server management, pomelo 是個真正多進程、分佈式的遊戲服務器。因此各遊戲server(進程)的管理是pomelo很重要的部分,框架通過抽象使服務器的管理非常容易。

Network,請求、響應、廣播、RPC、session 管理等構成了整個遊戲框架的脈絡,所有遊戲流程都構建在這個脈絡上。

Application, 應用的定義、component管理,上下文配置, 這些使pomelo framework的對外接口很簡單, 並且具有鬆耦合、可插拔架構。

Pomelo 的架構設計目標

服務器(進程)的抽象與擴展

  在 web 應用中, 每個服務器是無狀態、對等的, 開發者無需通過框架或容器來管理服務器。 但遊戲應用不同, 遊戲可能需要包含多種不同類型的服務器,每類服務器在數量上也可能有不同的需求。這就需要框架對服務器進行抽象和解耦,支持服務器類型和數量上的擴展。

客戶端的請求、響應、廣播

  客戶端的請求、響應與 web 應用是類似的, 但框架是基於長連接的, 實現模式與 http 請求有一定差別。 廣播是遊戲服務器最頻繁的操作, 需要方便的 API, 並且在性能上達到極致。

服務器間的通訊、調用

  儘管框架儘量避免跨進程調用,但進程間的通訊是不可避免的, 因此需要一個方便好用的 RPC 框架來支撐。

鬆耦合、可插拔的應用架構。

  應用的擴展性很重要, pomelo framework 支持以 component 的形式插入任何第三方組件, 也支持加入自定義的路由規則, 自定義的 filter 等。

爲什麼使用pomelo?

  高併發、高實時的遊戲服務器的開發是很複雜的工作。跟 web 應用一樣, 一個好的開源容器或開發框架可以大大減少遊戲開發的複雜性,讓開發變得更加容易。遺憾的是目前在遊戲服務器開發領域一直沒有太好的開源解決方案。 pomelo 將填補這個空白, 打造一款完全開源的高性能(併發)遊戲服務器框架。 pomelo 的優勢有以下幾點:

架構的可伸縮性好。 採用多進程單線程的運行架構,擴展服務器非常方便, node.js 的網絡 io 優勢提供了高可伸縮性。

使用非常容易, 開發模型與web應用的開發類似,基於 convention over configuration 的理念, 幾乎零配置, api 的設計也很精簡, 很容易上手。

框架的鬆耦合和可擴展性好, 遵循 node.js 微模塊的原則, framework 本身只有很少的代碼,所有 component、庫、工具都可以用 npm module 的形式擴展進來。任何第三方都可以根據自己的需要開發自定義 module。

提供完整的開源 MMO 遊戲 demo 參考,一個超過1萬行代碼的遊戲 demo,使開發者可以隨時借鑑 demo 的設計與開發思路。

如何使用pomelo開發?

  通過以下參考資料將使我們很快地熟悉 pomelo 的全貌與開發過程:

Pomelo架構概覽

Pomelo快速使用指南

Pomelo中文教程

Pomelo中文FAQ

  通過demo代碼的學習將使你熟悉一個完整MMO遊戲的開發:

遊戲Demo介紹

轉:https://www.jianshu.com/p/6a35e637f173

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章