Pomelo
html
Pomelo的框架組成html5
pomelo包括三部分:node
pomelo特性web
爲何使用pomelo?數據庫
高併發、高實時的遊戲服務器的開發是很複雜的工做。跟web應用同樣, 一個好的開源容器或開發框架能夠大大減小遊戲開發的複雜性,讓開發變得更加容易。
遺憾的是目前在遊戲服務器開發領域一直沒有太好的開源解決方案。 pomelo將填補這個空白, 打造一款徹底開源的高性能(併發)遊戲服務器框架。 pomelo的優點有如下幾點:npm
Firefly
json
Firefly是免費、開源、穩定、快速擴展、能 「熱更新」的分佈式遊戲服務器端框架,採用Python編寫,基於Twisted框架開發。它包括了開發框架和數據庫緩存服務等各類遊戲服務器基礎服務,節省大量遊戲開發的工做時間,真正作到讓使用者把精力放在遊戲玩法邏輯上。用它能夠搭建自定義的分佈式架構,只須要修改相應的配置文件便可。
優點特性
採用單線程多進程架構,支持自定義的分佈式架構;
方便的服務器擴展機制,可快速擴展服務器類型和數量;
與客戶端採用TCP長鏈接,無需考慮粘包等問題;
封裝數據緩存服務;
可實現實時熱更新數據以及遊戲邏輯,客戶端玩家無感受;
有幾十個基礎遊戲玩法系統模塊提供組裝使用(v1.3.0提供);
框架介紹api
management, firefly 是個多進程、分佈式的遊戲服務器。所以各遊戲server(進程)的管理和擴展是firefly很重要的部分,框架經過抽象使服務器的擴展很是容易。
Network,客戶端鏈接通訊、server進程間的通訊等構成了整個遊戲框架的脈絡,全部遊戲流程都構建在這個脈絡上。與客戶端的通訊採用的是請求/迴應式的,因此受到的客戶端的請求,服務端都會給出相應的迴應,服務端也能主動的推送,廣播給客戶端消息。這些請求是基於指令號的請求。(例如定義101爲登錄指令)server進程之間的通訊時採用的異步回調的方式,這樣就減小了的進程間經過網絡通訊中的時間消耗。
Data, 數據處理是網遊的重要部分。在網遊有大量的數據須要存儲,須要更新,這使得數據庫的讀寫效率成爲服務器的最大的性能瓶頸。firefly的db處理可以將數據庫表中的數據緩存到memcache中並能以對象的形式進行調用相應的對象方法對數據進行操做。能夠在不一樣的進程中經過實例化相同的名稱的緩存實例,獲得同步的數據。並能將緩存對象中的數據寫回數據庫中。
框架思路
一個最基本的服務器就是一個在不停運行着的應用程序。在分佈式遊戲服務器中,咱們須要的服務器具備的功能有,監聽客戶端的鏈接,監聽其餘服務進程的消息,鏈接其餘的服務進程,有些須要有數據庫鏈接和緩存服務。
net connect 作客戶端鏈接,root監聽其餘服務進程消息,node鏈接其餘服務進程,db數據庫,cache緩存。是否須要監聽客戶端鏈接,是否監聽其餘服務進程消息等這是都是能夠在config.json中進行配置。包括各個服務器的名稱以及各個服務器之間的鏈接關係。這樣就能夠自定義出本身的分佈式架構。緩存