標籤:

Actor模式下的大廳伺服器功能設計概述

伺服器基於skynet開源引擎設計。skynet基於actor模式的思想,所有的業務邏輯都是通過服務的形式協同工作。對於每個連接進來的玩家,會起一個agent服務專門處理這個玩家的業務。除了agent外,會有很多公共的服務來處理全局的業務。每個服務都在獨立的lua虛擬機環境下運行。服務之間通過消息的形式交互。

其中,wait_*類服務是會和中心伺服器產生交互的服務。和中心伺服器的交互的消息通過normal_cmsg服務中轉。

每個服務都有一個消息隊列,服務通過處理消息來完成業務邏輯。

服務之間通過send或者call發送消息,send沒有返回消息,call需要返回消息。

伺服器大部分的業務邏輯在agent內完成,基本的代碼結構和邏輯關係如下圖所示。

推薦閱讀:

狀態同步扣血匹配的坑
幀同步和狀態同步
卡牌戰鬥系統設計概述
記錄一次伺服器宕機分析過程(2)-深入Lua GC

TAG:遊戲伺服器 |