棋牌游戏服务器架构: 部署
先看一下,下面這張可能的部署圖吧。
圖1 ?系統(tǒng)布署圖
? ? ? 在這個圖中,可以看到,客戶端的形式多種多樣,可能是pc上的一個可執(zhí)行文件,也可能是通過瀏覽器打開的一個網(wǎng)頁,甚至于手機(jī)客戶端。它們都通過internet連接到游戲服務(wù)器。
? ? ? 在這個部署中有1個CenterServer,1個LogServer,3個LogonServer和很多個RoomServer(只顯示了德州撲克的兩個房間)。這些Server有可能分布在同一臺機(jī)器上,也可以分布在不同的機(jī)器之上。這對擴(kuò)容來說是極為方便地。在玩家數(shù)量增大,系統(tǒng)不足以承載其網(wǎng)絡(luò)負(fù)載時,只需要買更多的機(jī)器,架設(shè)更多的RoomServer或者LogonServer就行了。
? ? ?這里再分析一下一個中心服務(wù)器最多可支持多少玩家同時在線。假定1臺機(jī)器最多可以有5000個連接,也就是說我給可買5000個機(jī)器作為LogServer + RoomServer, LogServer的數(shù)目不會太多,可以忽略,所以最多有RoomServer可以管理最多5000X5000個用戶同時在線。
1布署數(shù)據(jù)庫
? ? ? 選定作為數(shù)據(jù)庫服務(wù)器的機(jī)器以后,要先安裝postgresql數(shù)據(jù)庫,然后導(dǎo)入ServerInfoDB(CenterServer使用), UserInfoDB(LogonServer、RoomServer、LogServer使用),UserScoreDB(RoomServer使用),還有有關(guān)各個游戲邏輯的數(shù)據(jù)庫,比如TexasPokerDB等等。這些數(shù)據(jù)庫不一定要放在一臺機(jī)器上,可以布置在不同的機(jī)器上,因為本架構(gòu)是支持分布式數(shù)據(jù)庫的,你只要記住每個數(shù)據(jù)庫所在機(jī)器的
2啟動服務(wù)器
2.1 啟動CenterServer
? ? ? 首先要修改中心服務(wù)器配置,主要包括兩個方面的配置:-網(wǎng)絡(luò)配置和數(shù)據(jù)庫配置。
? ? ? 網(wǎng)絡(luò)配置包括: 監(jiān)聽端口、最大連接數(shù)。這里的最連接數(shù)它的是最多支持多少個LogonServer + RoomServer。因為只有這兩種Server會連接CenterServer。
? ? ? 數(shù)據(jù)庫配置包括:ServerInfoDB所在機(jī)器的IP地址,端口號,連接要用的用戶名和密碼
? ? ??配置好以后,就可以直接啟動中心服務(wù)器了,中心服務(wù)器會根據(jù)這些配置信息來管理游戲列表,房間列表等信息。
?2.2 啟動LogonServer
? ? ? 第一步也是配置服務(wù)器,主要的配置信息為:
? ? ? 網(wǎng)絡(luò)配置: 監(jiān)聽端口和最大連接數(shù)。 這里的最連接數(shù)控制這個LogonServer最多同時支持多少人同時登錄。
? ? ? 數(shù)據(jù)庫配置:主要是配置UserInfoDB的地址,端口連接所用的用戶名和密碼。
? ? ? CenterServer相關(guān)配置: 主要有中心服務(wù)器所在IP,端口。需要CenterServer的相關(guān)信息是因為LogonServer會定時地從CenterServer中更新游戲列表和房間信息。
? ? ? 配置好以后就可以啟動LogonServer了。
2.3 啟動LogServer
? ? ? 這個服務(wù)器做的工作比較簡單,就是處理玩家的查看游戲過程用的。主要有以下配置項:
? ? ? 網(wǎng)絡(luò)配置: 監(jiān)聽端口和最大連接數(shù)。
? ? ? 數(shù)據(jù)庫配置: GameLogDB所在的IP,端口,連接所用的用戶名和密碼
? ? ? 配置好以后啟動即可。
2.4 配置RoomServer
? ? ? 玩家的大部分操作都是由這種服務(wù)器來響應(yīng),啟動一個RoomServer實(shí)例相當(dāng)于開啟一個新的房間,所以要擴(kuò)容,基本上只需要增加機(jī)器并開啟更多的RoomServer即可,其配置包括:
? ? ? 房間基本信息: 房間類型(vip房間,比賽房間,普通房間等), 桌子數(shù),每個桌子的椅子數(shù)等等。
? ? ? 網(wǎng)絡(luò)配置: 監(jiān)聽端口和最大連接數(shù)。這個最大連接數(shù)就是本房間最多支持多少玩家同時在線玩游戲。
? ? ? 數(shù)據(jù)庫配置: 包括UserInfoDB,具體游戲的DB(比如TexasPokerDB)的地址,端口,以及用戶名和密碼。
? ? ? CenterServer相關(guān)配置:這個配置和LogonServer一樣,需要這個配置也是因為RoomServer會定時地從 ? ? CenterServer中更新游戲列表和房間信息發(fā)送給客戶端。
?? ? 最后啟動這個房間。在配置房間以后,玩家就可以通過客戶端或者網(wǎng)頁進(jìn)行游戲了。
頂總結(jié)
以上是生活随笔為你收集整理的棋牌游戏服务器架构: 部署的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 棋牌游戏服务器架构: 总体设计
- 下一篇: 棋牌游戏服务器架构: 详细设计(一) 内