原地址:http://bbs.gameres.com/forum.php?mod=viewthread&tid=219285php
Firefly是免費、開源、穩定、快速擴展、能 「熱更新」的分佈式遊戲服務器端框架,採用Python編寫,基於Twisted框架開發。它包括了開發框架和數據庫緩存服務等各類遊戲服務器基礎服務,節省大量遊戲開發的工做時間,真正作到讓使用者把精力放在遊戲玩法邏輯上。用它能夠搭建自定義的分佈式架構,只須要修改相應的配置文件便可。
優點特性
node
框架介紹
management, firefly 是個多進程、分佈式的遊戲服務器。所以各遊戲server(進程)的管理和擴展是firefly很重要的部分,框架經過抽象使服務器的擴展很是容易。
Network,客戶端鏈接通訊、server進程間的通訊等構成了整個遊戲框架的脈絡,全部遊戲流程都構建在這個脈絡上。與客戶端的通訊採用的是請求/迴應式的,因此受到的客戶端的請求,服務端都會給出相應的迴應,服務端也能主動的推送,廣播給客戶端消息。這些請求是基於指令號的請求。(例如定義101爲登錄指令)server進程之間的通訊時採用的異步回調的方式,這樣就減小了的進程間經過網絡通訊中的時間消耗。
Data, 數據處理是網遊的重要部分。在網遊有大量的數據須要存儲,須要更新,這使得數據庫的讀寫效率成爲服務器的最大的性能瓶頸。firefly的db處理可以將數據庫表中的數據緩存到memcache中並能以對象的形式進行調用相應的對象方法對數據進行操做。能夠在不一樣的進程中經過實例化相同的名稱的緩存實例,獲得同步的數據。並能將緩存對象中的數據寫回數據庫中。
框架思路
一個最基本的服務器就是一個在不停運行着的應用程序。在分佈式遊戲服務器中,咱們須要的服務器具備的功能有,監聽客戶端的鏈接,監聽其餘服務進程的消息,鏈接其餘的服務進程,有些須要有數據庫鏈接和緩存服務。以下圖
net connect 作客戶端鏈接,root監聽其餘服務進程消息,node鏈接其餘服務進程,db數據庫,cache緩存。是否須要監聽客戶端鏈接,是否監聽其餘服務進程消息等這是都是能夠在config.json中進行配置。包括各個服務器的名稱以及各個服務器之間的鏈接關係。這樣就能夠自定義出本身的分佈式架構。
Firefly團隊:咱們或有不足,但咱們不停努力!Firefly 開源一切!數據庫