注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)工業(yè)技術(shù)建筑科學建筑設計Java游戲服務器架構(gòu)實戰(zhàn)

Java游戲服務器架構(gòu)實戰(zhàn)

Java游戲服務器架構(gòu)實戰(zhàn)

定 價:¥79.00

作 者: 王廣帥 著
出版社: 人民郵電出版社
叢編項:
標 簽: 暫缺

ISBN: 9787115540478 出版時間: 2020-09-01 包裝: 平裝
開本: 16開 頁數(shù): 360 字數(shù):  

內(nèi)容簡介

  為了幫助服務器開發(fā)人員更好地理解服務器框架的設計與開發(fā),本書從零開始,詳細闡述游戲服務器設計與開發(fā)的流程和技術(shù)點,包括網(wǎng)絡通信、分布式架構(gòu)設計、內(nèi)部RPC通信、數(shù)據(jù)管理、多線程管理,并從實踐的角度出發(fā),配合詳細的源碼,幫助廣大游戲服務器開發(fā)人員,或正在考慮從事游戲服務器開發(fā)的人員,更加系統(tǒng)地學習服務器架構(gòu)的設計與開發(fā)。本書實用性強,既可以幫助想從事服務器開發(fā)的人員快速學習相關(guān)知識,又可以幫助服務器開發(fā)人員向架構(gòu)師進階。

作者簡介

  王廣帥2011年進入游戲行業(yè),一直致力于Java游戲服務器開發(fā)。2014年開始負責創(chuàng)業(yè)游戲公司的服務器架構(gòu)設計工作,帶領(lǐng)團隊參與網(wǎng)頁游戲、手機游戲、2D游戲、3D游戲、卡牌類游戲、多人在線(MMO)類游戲的服務器開發(fā),積累了豐富的游戲服務器架構(gòu)設計與開發(fā)經(jīng)驗。業(yè)余時間,經(jīng)常在QQ群(66728073)、個人微信公眾號(youxijishu)、技術(shù)博客分享游戲服務器開發(fā)的技術(shù)經(jīng)驗,并且獨立維護一個專業(yè)的游戲開發(fā)網(wǎng)站——游戲技術(shù)網(wǎng)。

圖書目錄

第 1章 游戲服務器架構(gòu)總體設計01
1.1 游戲服務器架構(gòu)設計的意義 01
1.1.1 良好的架構(gòu)設計有助于團隊協(xié)作開發(fā) 01
1.1.2 良好的架構(gòu)設計有助于避免bug 的產(chǎn)生 02
1.1.3 良好的架構(gòu)設計有助于制定合理的項目開發(fā)周期計劃 02
1.1.4 良好的架構(gòu)設計有利于測試 03
1.2 游戲服務器架構(gòu)分類 03
1.2.1 單體游戲服務器架構(gòu) 03
1.2.2 分布式游戲服務器架構(gòu) 05
1.3 游戲服務器架構(gòu)基本模塊 06
1.3.1 網(wǎng)絡通信長連接與短連接 06
1.3.2 網(wǎng)關(guān) 07
1.3.3 服務消息交互——消息中間件 08
1.3.4 業(yè)務處理框架 09
1.3.5 測試模塊 11
1.4 本章總結(jié)11
第 2章 服務器項目管理——Maven 12
2.1 Eclipse 中配置Maven 工具 12
2.1.1 Maven 下載與配置 12
2.1.2 Maven 環(huán)境變量配置 13
2.1.3 Maven 常用命令示例 15
2.2 搭建Maven 倉庫中心 16
2.2.1 安裝Nexus 16
2.2.2 在Maven 中配置私服 19
2.2.3 添加非開源依賴Jar 包 21
2.3 創(chuàng)建Maven 項目21
2.3.1 創(chuàng)建父項目 22
2.3.2 創(chuàng)建子項目 23
2.4 本章總結(jié)23
第3章 數(shù)據(jù)庫選擇與安裝24
3.1 數(shù)據(jù)持久化——MongoDB 24
3.1.1 為什么使用MongoDB 24
3.1.2 安裝MongoDB 25
3.2 內(nèi)存型數(shù)據(jù)庫——Redis 28
3.2.1 為什么使用Redis 28
3.2.2 安裝Redis 29
3.2.3 使用Redis 緩存需要注意的事項 30
3.3 本章總結(jié)32
第4章 游戲服務中心開發(fā)33
4.1 游戲服務中心的作用 33
4.1.1 游戲服務中心提供游戲外圍服務 33
4.1.2 游戲服務中心方便動態(tài)擴展 34
4.2 游戲服務中心開發(fā)準備 34
4.2.1 根據(jù)需求設計架構(gòu) 34
4.2.2 Spring Cloud 簡介 36
4.2.3 安裝Spring Tool 插件 37
4.2.4 添加公共pom 依賴 38
4.3 用戶登錄注冊功能開發(fā) 40
4.3.1 創(chuàng)建游戲服務中心項目 41
4.3.2 網(wǎng)絡通信數(shù)據(jù)格式定義 43
4.3.3 添加數(shù)據(jù)庫操作 45
4.3.4 實現(xiàn)登錄注冊 50
4.3.5 全局異常捕獲處理 55
4.3.6 登錄注冊測試 56
4.3.7 實現(xiàn)角色創(chuàng)建 57
4.3.8 角色創(chuàng)建測試 59
4.4 本章總結(jié)60
第5章 Web 服務器網(wǎng)關(guān)開發(fā) 61
5.1 Consul 服務注冊中心 61
5.1.1 Consul 簡介 61
5.1.2 安裝Consul 62
5.2 Web 服務器網(wǎng)關(guān)功能開發(fā) 63
5.2.1 Spring Cloud Gateway 簡介 63
5.2.2 創(chuàng)建Web 服務器網(wǎng)關(guān)項目 64
5.2.3 網(wǎng)關(guān)路由信息配置 66
5.2.4 測試Web 服務器網(wǎng)關(guān)請求轉(zhuǎn)發(fā) 68
5.3 統(tǒng)一驗證請求權(quán)限 69
5.3.1 在Web 服務器網(wǎng)關(guān)進行權(quán)限驗證的必要性 69
5.3.2 網(wǎng)關(guān)全局過濾組件——GlobalFilter 71
5.3.3 GlobalFilter 實現(xiàn)權(quán)限驗證 72
5.3.4 測試網(wǎng)關(guān)權(quán)限驗證 74
5.4 請求負載均衡 76
5.4.1 負載均衡組件——Spring Cloud Ribbon 76
5.4.2 自定義負載均衡策略 77
5.4.3 負載均衡策略配置 80
5.5 網(wǎng)關(guān)流量限制 81
5.5.1 常見的限流算法 81
5.5.2 添加Web 服務器網(wǎng)關(guān)限流策略 83
5.5.3 Web 服務限流測試 86
5.6 HTTPS 請求配置 86
5.6.1 HTTPS 簡介 86
5.6.2 HTTPS 證書申請 87
5.6.3 網(wǎng)關(guān)服務配置HTTPS 證書 89
5.6.4 測試HTTPS 訪問 90
5.7 服務錯誤異常全局捕獲 92
5.7.1 默認全局Web 異常捕獲 92
5.7.2 自定義全局Web 異常捕獲 93
5.7.3 異常捕獲測試 95
5.8 本章總結(jié)96
第6章 游戲服務器網(wǎng)關(guān)開發(fā)97
6.1 游戲服務器網(wǎng)關(guān)管理 97
6.1.1 游戲服務器網(wǎng)關(guān)必須支持動態(tài)伸縮 97
6.1.2 游戲服務器網(wǎng)關(guān)項目搭建與配置 99
6.1.3 游戲服務器網(wǎng)關(guān)信息緩存管理 101
6.1.4 游戲服務器網(wǎng)關(guān)負載均衡策略 105
6.1.5 測試游戲服務器網(wǎng)關(guān)信息 107
6.2 客戶端與游戲服務器網(wǎng)關(guān)通信開發(fā) 109
6.2.1 客戶端項目創(chuàng)建 109
6.2.2 網(wǎng)絡通信數(shù)據(jù)粘包與斷包 117
6.2.3 網(wǎng)絡通信協(xié)議制定 119
6.2.4 客戶端消息編碼與解碼開發(fā) 121
6.2.5 游戲服務器網(wǎng)關(guān)消息編碼與解碼開發(fā) 124
6.2.6 使用Netty 實現(xiàn)游戲服務器網(wǎng)關(guān)長連接服務 127
6.3 請求消息參數(shù)與響應消息參數(shù)對象化 130
6.3.1 請求與響應消息封裝 130
6.3.2 客戶端與游戲服務器網(wǎng)關(guān)通信測試 137
6.4 消息體對象序列化與反序列化 139
6.4.1 消息體使用JSON 序列化與反序列化 140
6.4.2 消息體使用Protocol Buffers 序列化與反序列化 142
6.5 消息自動分發(fā)處理 146
6.5.1 消息自動分發(fā)設計 147
6.5.2 消息自動分發(fā)開發(fā) 148
6.6 網(wǎng)絡通信安全 152
6.6.1 連接認證 152
6.6.2 通信協(xié)議加密和解密 154
6.6.3 游戲服務器網(wǎng)關(guān)流量限制 158
6.7 網(wǎng)絡連接管理 159
6.7.1 連接管理 159
6.7.2 連接心跳檢測 163
6.7.3 消息冪等處理 167
6.8 本章總結(jié)168
第7章 游戲服務器網(wǎng)關(guān)與游戲業(yè)務服務數(shù)據(jù)通信169
7.1 游戲服務器網(wǎng)關(guān)與游戲業(yè)務服務通信定義 169
7.1.1 游戲服務器網(wǎng)關(guān)消息轉(zhuǎn)發(fā) 169
7.1.2 定義消息通信模型 170
7.1.3 Spring Cloud Bus 消息總線 173
7.1.4 消息總線通信層——Kafka 174
7.1.5 消息總線消息發(fā)布訂閱測試 178
7.2 游戲服務器網(wǎng)關(guān)與游戲業(yè)務服務通信實現(xiàn) 178
7.2.1 消息序列化與反序列化實現(xiàn) 179
7.2.2 游戲服務器網(wǎng)關(guān)消息負載均衡 181
7.2.3 游戲服務器網(wǎng)關(guān)消息轉(zhuǎn)發(fā)實現(xiàn) 185
7.2.4 游戲服務器網(wǎng)關(guān)監(jiān)聽接收響應消息 189
7.2.5 添加游戲業(yè)務服務項目 190
7.2.6 游戲服務接收并響應網(wǎng)關(guān)消息 193
7.3 游戲服務器網(wǎng)關(guān)與游戲服務通信測試 195
7.4 本章總結(jié)197
第8章 游戲業(yè)務處理框架開發(fā)198
8.1 游戲服務器中的多線程管理 198
8.1.1 線程數(shù)量的管理 198
8.1.2 游戲服務線程池分配 200
8.2 Netty 線程池模型 200
8.2.1 Netty 線程模型的核心類 201
8.2.2 獲取線程池執(zhí)行結(jié)果 202
8.3 客戶端消息處理管理 205
8.3.1 借鑒Netty 的消息處理機制 205
8.3.2 客戶端消息事件處理框架模型 209
8.3.3 實現(xiàn)自定義MultithreadEventExecutorGroup 213
8.3.4 實現(xiàn)GameChannel 217
8.3.5 實現(xiàn)GameChannelPipeline 220
8.3.6 實現(xiàn)AbstractGameChannelHandlerContext 222
8.3.7 實現(xiàn)客戶端消息處理與消息返回 224
8.3.8 GameChannel 空閑超時處理 228
8.4 不同游戲用戶之間的數(shù)據(jù)交互 236
8.4.1 多線程并發(fā)操作數(shù)據(jù)導致的錯誤或異?!?37
8.4.2 在功能設計上避免用戶數(shù)據(jù)之間的直接交互 239
8.4.3 在架構(gòu)設計上解決用戶數(shù)據(jù)之間的直接交互 239
8.4.4 GameChannel 事件自動分發(fā)處理 243
8.5 本章總結(jié)245
第9章 游戲用戶數(shù)據(jù)管理246
9.1 游戲用戶數(shù)據(jù)異步加載 246
9.1.1 加載游戲數(shù)據(jù)的時機 246
9.1.2 異步加載游戲數(shù)據(jù)實現(xiàn) 247
9.2 游戲數(shù)據(jù)持久化到數(shù)據(jù)庫 250
9.2.1 游戲數(shù)據(jù)持久化方式 250
9.2.2 異步方式持久化數(shù)據(jù)的并發(fā)問題 251
9.2.3 數(shù)據(jù)定時異步持久化實現(xiàn) 253
9.3 Player 對象的封裝與使用 256
9.3.1 直接操作Player 對象的弊端 256
9.3.2 實現(xiàn)Player 對象數(shù)據(jù)與行為分離 258
9.4 本章總結(jié)260
第 10章 RPC 通信設計與實現(xiàn) 261
10.1 游戲模塊服務劃分 261
10.1.1 游戲服務需不需要微服務化 261
10.1.2 游戲服務模塊進程劃分規(guī)則 263
10.2 RPC 通信實現(xiàn) 264
10.2.1 自定義RPC 設計 264
10.2.2 負載均衡管理 268
10.2.3 創(chuàng)建競技場服務項目 274
10.2.4 RPC 請求消息的發(fā)送與接收 281
10.2.5 RPC 響應消息的發(fā)送與接收 290
10.2.6 RPC 請求超時檢測 292
10.3 本章總結(jié)293
第 11章 事件系統(tǒng)的設計與實現(xiàn)294
11.1 事件系統(tǒng)在服務器開發(fā)中的重要性 294
11.1.1 什么是事件系統(tǒng) 294
11.1.2 事件系統(tǒng)可以解耦模塊依賴 295
11.1.3 事件系統(tǒng)使代碼更容易維護 296
11.2 事件系統(tǒng)的實現(xiàn) 296
11.2.1 自定義基于監(jiān)聽接口的事件系統(tǒng) 297
11.2.2 自定義基于注解的事件系統(tǒng) 299
11.2.3 Spring 事件系統(tǒng)應用304
11.3 根據(jù)事件實現(xiàn)的任務系統(tǒng) 306
11.3.1 任務系統(tǒng)需求 307
11.3.2 面向過程的任務系統(tǒng)實現(xiàn) 308
11.3.3 面向?qū)ο蟮氖录|發(fā)式任務系統(tǒng)實現(xiàn) 309
11.4 本章總結(jié) 314
第 12章 游戲服務器自動化測試315
12.1 游戲服務器自動化測試的重要性 315
12.1.1 單元測試使代碼更簡潔 315
12.1.2 單元測試保證方法的代碼正確性 321
12.1.3 自動化測試保證代碼重構(gòu)的安全性 323
12.2 游戲服務器自動化測試的實現(xiàn) 323
12.2.1 TestNG 框架簡介 324
12.2.2 Spring Boot 單元測試配置 325
12.2.3 方法單元測試案例實現(xiàn) 329
12.2.4 服務器集成測試實現(xiàn) 336
12.2.5 使用TestNG 配置文件區(qū)分不同的測試環(huán)境 340
12.3 本章總結(jié)342
第 13章 服務器開發(fā)實例——世界聊天系統(tǒng) 343
13.1 單服世界聊天系統(tǒng)實現(xiàn) 343
13.1.1 添加客戶端命令 344
13.1.2 服務器實現(xiàn)消息轉(zhuǎn)發(fā) 348
13.1.3 單服世界聊天測試 349
13.2 分布式世界聊天系統(tǒng)實現(xiàn) 352
13.2.1 分布式世界聊天系統(tǒng)設計 352
13.2.2 創(chuàng)建單獨的聊天項目 354
13.2.3 實現(xiàn)聊天消息的發(fā)布與轉(zhuǎn)發(fā) 356
13.2.4 分布式世界聊天服務測試 359
13.3 本章總結(jié)360

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號