ProudNet.Cn
WebsiteProud ConsoleLanguage
  • 🌐ProudNet
    • ProudNet 簡介
    • 下載並安裝
      • ProudNet授權認證方法
      • AMI
    • 項目設定
      • C++
      • C#
      • Mac Xcode
      • Linux
      • Unity3D
        • iOS 建置
      • Unreal Engine 4
      • 運行 PIDL 編譯器
    • 使用 ProudNet
      • 伺服器和客戶端
        • 如何使用伺服器
        • 如何使用客戶端
      • RMI
        • 如何使用RMI
      • PIDL
        • 如何使用PIDL
      • 事件處理
      • 通訊訊息
      • P2P 通訊
        • 如何使用P2P通訊
    • 活用 ProudNet
      • 如何使用它
      • 性能小貼士
    • 在 ProudNet 中使用 DB
      • DB Cache System ver.2
        • DB Cache 理論和理解
        • DB Cache 安裝和網絡設置
        • DB Cache 伺服器和用戶端
        • DB Cache 使用與活用
          • DB Cache 活用法
      • ADO API
      • ODBC API
    • ProudNet 實用程式
  • ProudNet note
    • 技術說明
      • 對主循環的理解
      • 配置服務器防火牆
      • 加密和解密
      • 發生錯誤時的應對事項
      • 錯誤信息列表
      • 同步角色位置
      • 客戶端與服務器通信
      • MiniDump (Error Dump System)
      • [1.6 版本] 服務器間 LAN 通訊器
    • 詞彙表
    • Sample 例題
  • 🌐ProudChat
    • 介紹及使用指南
    • 下載 SDK
      • C++
      • C#
      • Unity3D
      • Unreal Engine 4
Powered by GitBook
On this page
  • DB cache 的遊戲資料庫架構
  • DB cache 服務器準備
  • DB Cache 客戶端準備
  1. ProudNet
  2. 在 ProudNet 中使用 DB
  3. DB Cache System ver.2

DB Cache 安裝和網絡設置

PreviousDB Cache 理論和理解NextDB Cache 伺服器和用戶端

Last updated 1 year ago

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個。

實例
註釋

Proud.CDbCacheServer2.New

創建實例

Proud.CDbCacheServer2.Start

執行

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

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

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

  • 在 Proud.CDbCacheServer2.Start 運行期間,將自動生成 sp_Get<表格名稱>Data 和 sp_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將被回撥。

🌐
MMORPG中保存玩家數據的數據庫方案的示例