Firefly 介紹

 Firefly是免費、開源、穩定、快速擴展、能 「熱更新」的分佈式遊戲服務器端框架,採用Python編寫,基於Twisted框架開發。它包括了開發框架和數據庫緩存服務等各類遊戲服務器基礎服務,節省大量戲開發的工做時間,真正作到讓使用者把精力放在遊戲玩法邏輯上。用它能夠搭建自定義的分佈式架構,只須要修改相應的配置文件便可。node

 


優點特性

  • 採用單線程多進程架構,支持自定義的分佈式架構;
  • 方便的服務器擴展機制,可快速擴展服務器類型和數量;
  • 與客戶端採用TCP長鏈接,無需考慮粘包等問題;
  • 封裝數據緩存服務;
  • 可實現實時熱更新數據以及遊戲邏輯,客戶端玩家無感受;
  • 有幾十個基礎遊戲玩法系統模塊提供組裝使用(v1.3.0提供);


框架介紹

<ignore_js_op>
                           
                              
 
                                                                                                                                                                    圖01-框架介紹
 
 
management, firefly 是個多進程、分佈式的遊戲服務器。所以各遊戲server(進程)的管理和擴展是firefly很重要的部分, 框架經過抽象使服務器的擴展很是容易。

Network,客戶端鏈接通訊、server進程間的通訊等構成了整個遊戲框架的脈絡,全部遊戲流程都構建在這個脈絡上。 與客戶端的通訊採用的是請求/迴應式的,因此受到的客戶端的請求,服務端都會給出相應的迴應,服務端也能主動 的推送,廣播給客戶端消息。這些請求是基於指令號的請求。(例如定義101爲登錄指令)server進程之間的通訊時 採用的異步回調的方式,這樣就減小了的進程間經過網絡通訊中的時間消耗。

Data, 數據處理是網遊的重要部分。在網遊有大量的數據須要存儲,須要更新,這使得數據庫的讀寫效率成爲服務器 的最大的性能瓶頸。firefly的db處理可以將數據庫表中的數據緩存到memcache中並能以對象的形式進行調用相應的對 象方法對數據進行操做。能夠在不一樣的進程中經過實例化相同的名稱的緩存實例,獲得同步的數據。並能將緩存對象 中的數據寫回數據庫中。
 
框架思路

一個最基本的服務器就是一個在不停運行着的應用程序。在分佈式遊戲服務器中,咱們須要的服務器具備的功能有, 監聽客戶端的鏈接,監聽其餘服務進程的消息,鏈接其餘的服務進程,有些須要有數據庫鏈接和緩存服務。
以下圖:

<ignore_js_op>
                                       
 
 
                                                                                                                                                              圖02-框架思路 
 


net connect 作客戶端鏈接,root監聽其餘服務進程消息,node鏈接其餘服務進程,db數據庫,cache緩存。是否須要 監聽客戶端鏈接,是否監聽其餘服務進程消息等這是都是能夠在config.json中進行配置。包括各個服務器的名稱以及 各個服務器之間的鏈接關係。這樣就能夠自定義出本身的分佈式架構。
相關文章
相關標籤/搜索