棋牌游戲服務器架構: 部署


      先看一下,下面這張可能的部署圖吧。

圖1  系統布署圖

      在這個圖中,可以看到,客戶端的形式多種多樣,可能是pc上的一個可執行文件,也可能是通過瀏覽器打開的一個網頁,甚至於手機客戶端。它們都通過internet連接到游戲服務器。

      在這個部署中有1個CenterServer,1個LogServer,3個LogonServer和很多個RoomServer(只顯示了德州撲克的兩個房間)。這些Server有可能分布在同一台機器上,也可以分布在不同的機器之上。這對擴容來說是極為方便地。在玩家數量增大,系統不足以承載其網絡負載時,只需要買更多的機器,架設更多的RoomServer或者LogonServer就行了。

     這里再分析一下一個中心服務器最多可支持多少玩家同時在線。假定1台機器最多可以有5000個連接,也就是說我給可買5000個機器作為LogServer + RoomServer, LogServer的數目不會太多,可以忽略,所以最多有RoomServer可以管理最多5000X5000個用戶同時在線。

1布署數據庫

      選定作為數據庫服務器的機器以后,要先安裝postgresql數據庫,然后導入ServerInfoDB(CenterServer使用), UserInfoDB(LogonServer、RoomServer、LogServer使用),UserScoreDB(RoomServer使用),還有有關各個游戲邏輯的數據庫,比如TexasPokerDB等等。這些數據庫不一定要放在一台機器上,可以布置在不同的機器上,因為本架構是支持分布式數據庫的,你只要記住每個數據庫所在機器的

2啟動服務器

2.1 啟動CenterServer

      首先要修改中心服務器配置,主要包括兩個方面的配置:­網絡配置和數據庫配置。

      網絡配置包括: 監聽端口、最大連接數。這里的最連接數它的是最多支持多少個LogonServer + RoomServer。因為只有這兩種Server會連接CenterServer。

      數據庫配置包括:ServerInfoDB所在機器的IP地址,端口號,連接要用的用戶名和密碼

      配置好以后,就可以直接啟動中心服務器了,中心服務器會根據這些配置信息來管理游戲列表,房間列表等信息。

 2.2 啟動LogonServer

      第一步也是配置服務器,主要的配置信息為:

      網絡配置: 監聽端口和最大連接數。 這里的最連接數控制這個LogonServer最多同時支持多少人同時登錄。

      數據庫配置:主要是配置UserInfoDB的地址,端口連接所用的用戶名和密碼。

      CenterServer相關配置: 主要有中心服務器所在IP,端口。需要CenterServer的相關信息是因為LogonServer會定時地從CenterServer中更新游戲列表和房間信息。

      配置好以后就可以啟動LogonServer了。

2.3 啟動LogServer

      這個服務器做的工作比較簡單,就是處理玩家的查看游戲過程用的。主要有以下配置項:

      網絡配置: 監聽端口和最大連接數。 

      數據庫配置: GameLogDB所在的IP,端口,連接所用的用戶名和密碼

      配置好以后啟動即可。

2.4 配置RoomServer

      玩家的大部分操作都是由這種服務器來響應,啟動一個RoomServer實例相當於開啟一個新的房間,所以要擴容,基本上只需要增加機器並開啟更多的RoomServer即可,其配置包括:

      房間基本信息: 房間類型(vip房間,比賽房間,普通房間等), 桌子數,每個桌子的椅子數等等。

      網絡配置: 監聽端口和最大連接數。這個最大連接數就是本房間最多支持多少玩家同時在線玩游戲。

      數據庫配置: 包括UserInfoDB,具體游戲的DB(比如TexasPokerDB)的地址,端口,以及用戶名和密碼。

      CenterServer相關配置:這個配置和LogonServer一樣,需要這個配置也是因為RoomServer會定時地從     CenterServer中更新游戲列表和房間信息發送給客戶端。

     最后啟動這個房間。在配置房間以后,玩家就可以通過客戶端或者網頁進行游戲了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM