先看一下,下面這張可能的部署圖吧。
圖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中更新游戲列表和房間信息發送給客戶端。
最后啟動這個房間。在配置房間以后,玩家就可以通過客戶端或者網頁進行游戲了。