DB Cache 安裝和網絡設置

DB cache 的遊戲資料庫架構

DB cache的數據庫方案可以按照用戶的意願配置。

但是,要遵守以下規則。

  • 您必須進入 RootUUID、 OwnerUID 和 UUID 字段 。

  • 將RootUUID、OwnerUID、UUID指定爲Combination PK後使用,會對使用索引的搜索產生不利影響。 因此,創建和使用各自的index有助於提高性能。

  • 在上述字段中的RootUUID和OwnerUID被指定爲Non-Unique Index。 UUID 被指定爲 Primary Key 。

  • 上述字段應爲MySQL至varchar(38)格式,MSSQL爲uniqueidentifier格式。

  • Root table和Child table的名稱不應重複。

  • DB cache客戶端和服務器使用的stored procedure會自動添加到遊戲數據庫方案,請不要修改或刪除這些方案。

3 個必需索引添加示例腳本

ALTER TABLE dbo.Gamer ADD CONSTRAINT
 
PK_Gamer PRIMARY KEY CLUSTERED
 
(
 
UUID
 
) WITH( IGNORE_DUP_KEY = OFF) ON [PRIMARY]
 
 
 
CREATE INDEX IX_Gamer_OwnerUUID ON dbo.Gamer
 
(
 
OwnerUUID
 
) WITH( IGNORE_DUP_KEY = OFF) ON [PRIMARY]
 
 
 
CREATE INDEX IX_Gamer_RootUUID ON dbo.Gamer
 
(
 
RootUUID
 
) WITH( IGNORE_DUP_KEY = OFF) ON [PRIMARY]

DB cache 服務器準備

生成數據庫方案後,需要生成DB cache server實例,是Proud.CDbCacheServer2類型,實例在每個遊戲服務器之間只需1個。

  • 連接DB實例的連接連接是ADO連接連接連接形式,樣品中可參考。

  • DB cache server 的認證 key 是 DB cache client 發送的數據,用於識別 DB cache 服務器上的連接。

  • 調用 Proud.CDbCacheServer2.Start 時, 您必須在 Proud.CDbCacheServer2StartParameter.m_tableNames 中插入用戶定義的表名 。

  • Proud.CDbCacheServer2.Start 運行期間,將自動生成 sp_Get<表格名稱>Datasp_Remove<表格名稱>Data 以及 sp_Add<表格名稱>Data

DB Cache 客戶端準備

每個遊戲服務器(認證服務器、遊戲zone服務器、遊說服務器等)都必須運行Proud.CDbCacheClient2.New以創建client實例,類型爲Proud.CDbCacheClient2

創建後, 您必須嘗試通過 Proud.CDbCacheClient2.Connect 連接到 DB cache server 。 嘗試連接以異步方式進行,如果連接成功或失敗,則 Proud.IDbCacheClientDelegate2.OnJoinDbCacheServerComplete 將返回。 DB cache client 是用於內部使用 Proud.CLanClient 的線程合併, 因此沒有單獨的 FrameMove 。

爲了解除與DB cache server 的連接, 可能會破壞 Proud.CDbCacheClient2 對象或調用 Proud.CDbCacheClient2.Disconnect 。 此時,DB cache客戶端的Proud.IDbCacheClientDelegate2.OnLeaveDbCacheServer將被回撥。

Last updated