游戏服务器架构与优化

游戏服务器架构与优化
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2018-04
版次: 1
ISBN: 9787111595472
定价: 79.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 314页
29人买过
  • 这是一部从实操的角度讲解各种类型的游戏和应用服务器的架构、设计、开发和优化的著作。 
    作者是资深的游戏服务器技术专家和底层技术专家,有20余年开发和管理经验,曾在网易工作7年,参与过各种类型的游戏的研发。 
    本书针对MMORPG、SLG、卡牌、3D虚拟社区等各种游戏,以及App、深度学习服务、商城等各种应用对应的各种类型的服务器的研发和优化给出了具体的指导意见。从单机到集群,从基础的网络编程到分布式架构,由浅入深、承上启下、前后呼应,整本书内容前后贯穿、逻辑缜密,对于开发和运维人员来说相当实用。 
    全书共13章,分为三个部分: 
    第一部分(第1~3章) 网络和服务器 
    本书以Python为描述语言,所以首先详细讲解了Python中的网络编程模块,然后讲解了服务器相关的通信加密、WebSocket、多线程等技术。 
    第二部分(第4~5章) 存储和数据库 
    这部分首先讲解了数据库存储的基础知识,如内存数据同步、数据备份与恢复、SQLite等;然后重点介绍了高并发服务器的存储方案、高速缓存方案、二进制缓存方案、大规模计算方案,以及基于区块链技术的存储方案。 
    第三部分(第6~13章) 服务器架构及其优化 
    第6章和第7章介绍了服务器的架构演变以及不同类型的游戏服务器各自是如何交互的;第8章和第9章详细讲解了游戏大厅和实时交互服务器的架构、开发和优化;第10章讲解了天梯和经济系统的开发与设计;第11章讲解了服务器的承载量以及客户端的优化方案;第12章介绍了分布式服务器相关的技术;第13章从语言的角度对游戏服务器开发的技术选型给出了非常全面的分析。 

    蔡能(DarkSpy) 
    资深服务器底层技术专家和游戏服务器开发专家,有超过20年的编码和团队管理经验,是网易的早期员工之一。 
    在游戏开发领域有非常深厚的积累,带领团队开发了各种类型(PC游戏、手游、页游、2D游戏、3D游戏、VR/AR游戏等)的游戏和应用服务器,对服务器的架构、编写、优化和并发策略有深刻的认识和独到的见解;在C/C++、Python、PHP等技术领域的经验十分丰富。 
    1996~2009年期间,曾编写过极富盛名的EasyCode和EasyCode Pro,以及其他被收录到各大杂志典藏光碟的软件,EasyCode 在参加《程序员》网站举办的”中国共享软件评比”活动时得票数在同类软件中名列前茅。是《程序员》杂志2007~2008年C/C++领域的点评专家,擅长软件架构和底层技术。2013年7月,接受《今日早报》关于游戏行业的采访。 

    目  录?Contents 
    前 言 
    第一部分 网络和服务器 
    第1章 Python网络编程模块 2 
    1.1 Python Socket 3 
    1.1.1 Socket套接字 3 
    1.1.2 SOCK_STREAM、SOCK_DGRAM 4 
    1.1.3 阻塞和非阻塞模式 5 
    1.2 服务器端其他Socket方法 7 
    1.2.1 bind和listen 7 
    1.2.2 setsockopt 8 
    1.3 客户端Socket 10 
    1.4 通用的Socket方法 12 
    1.4.1 recv和send 12 
    1.4.2 recvfrom和sendto 13 
    1.5 SimpleHTTPServer和BaseHTTPServer 14 
    1.5.1 SimpleHTTPServer 15 
    1.5.2 BaseHTTPServer 15 
    1.6 urllib和urllib2 17 
    1.6.1 urllib.urlopen和urllib2.urlopen 18 
    1.6.2 urllib2中的GET和POST方法 19 
    1.7 事件驱动框架Twisted 20 
    1.7.1 Reactor模式 21 
    1.7.2 run、stop和callLater 23 
    1.7.3 Transports、Protocols、Protocol Factoies以及Deferred 24 
    第2章 通信加密 26 
    2.1 软件、通信加密的几种常用方案 27 
    2.1.1 异或位运算加密 27 
    2.1.2 其他对称加密 29 
    2.1.3 非对称加密 30 
    2.2 OpenSSL 33 
    2.2.1 生成证书 35 
    2.2.2 公钥和私钥的配置 40 
    2.3 SSL/TLS通信 43 
    2.3.1 SSL/TLS连接 45 
    2.3.2 SSL/TLS HTTPS通信 46 
    2.4 其他加密方式 49 
    2.4.1 散列算法 49 
    2.4.2 BASE64 52 
    2.4.3 多国语言 53 
    第3章 服务器实作 55 
    3.1 构建Python Websocket服务器 55 
    3.1.1 Websocket的应用场景 57 
    3.1.2 实作Websocket握手协议 59 
    3.1.3 MAGIC_STRING在Websocket中的作用 60 
    3.1.4 Websocket 启动 62 
    3.1.5 Websocket消息拆分和读取 63 
    3.2 多线程服务器 64 
    3.2.1 Python的多线程模式 65 
    3.2.2 锁 68 
    3.2.3 Python GIL 70 
    3.2.4 multiprocess的解决思路 72 
    3.2.5 给Websocket加上多线程 73 
    3.3 线程池 75 
    3.3.1 默认线程池和进程池 75 
    3.3.2 协程 76 
    3.3.3 第三方库 78 
    3.3.4 gevent的数据结构 85 
    第二部分 存储与数据库 
    第4章 基础内容存储 94 
    4.1 数据库存储的种类 95 
    4.2 SQL与NoSQL 96 
    4.2.1 SQL 96 
    4.2.2 SQL语句语法 97 
    4.2.3 NoSQL 101 
    4.2.4 NoSQL语句语法 106 
    4.3 内存与IO读写速度 108 
    4.4 同步内存数据 109 
    4.4.1 Redis数据库的持久性 111 
    4.4.2 Redis主从数据库复制 112 
    4.5 数据备份和恢复 113 
    4.5.1 备份的类型 114 
    4.5.2 使用Python编写备份代码 115 
    4.6 不可或缺的SQLite 117 
    第5章 存储方案 121 
    5.1 高并发服务器的存储方案 121 
    5.1.1 网站高并发服务器的策略 122 
    5.1.2 数据库的锁 125 
    5.2 高速缓存 127 
    5.2.1 Memcached 127 
    5.2.2 大文件缓存 129 
    5.2.3 分布式和集群 130 
    5.3 二进制存储方案 132 
    5.3.1 磁盘IO和缓存 133 
    5.3.2 图片和影音文件 134 
    5.4 大规模计算 135 
    5.4.1 图片服务器的架构 136 
    5.4.2 读取和写入文本 137 
    5.4.3 文本搜索方案 138 
    5.5 区块链技术 139 
    第三部分 服务器架构及其方案 
    第6章 游戏服务器初探 144 
    6.1 服务器消息和轮询 144 
    6.1.1 卡牌游戏和弱连接 145 
    6.1.2 消息的轮询 147 
    6.2 游戏服务器架构演变 149 
    6.2.1 “上古时代”的游戏服务器 149 
    6.2.2 近代的网络游戏服务器 153 
    6.2.3 近现代经典游戏服务器模型 155 
    6.3 地图的无缝连接 157 
    6.3.1 无缝连接的分析 158 
    6.3.2 无缝地图更深层次的问题 160 
    第7章 游戏服务器的交互 165 
    7.1 无状态和有状态的服务器设计方案 165 
    7.1.1 无状态的服务器设计方案 166 
    7.1.2 有状态的服务器设计方案 167 
    7.2 轮询 169 
    7.3 集群方案 171 
    7.3.1 集群的几种方式 171 
    7.3.2 集群的方案 172 
    7.3.3 数据库方案 173 
    7.3.4 Web服务和数据库 174 
    7.3.5 其他方案 176 
    7.4 定时任务 178 
    第8章 游戏大厅 181 
    8.1 大厅登录流程 181 
    8.1.1 登录和选择游戏区 182 
    8.1.2 注册和登录 183 
    8.2 中间件 185 
    8.2.1 中间件的相关概念 186 
    8.2.2 ElasticSearch 191 
    8.2.3 在Python中使用ES 193 
    8.3 聊天服务 195 
    8.3.1 聊天服务器的搭建 195 
    8.3.2 聊天内容的获取和分发 196 
    8.4 大厅与游戏的对接 198 
    8.4.1 创建房间 198 
    8.4.2 与游戏的对接 199 
    第9章 实时交互服务器 202 
    9.1 长连接和强交互 202 
    9.1.1 TCP连接 203 
    9.1.2 多线程 205 
    9.1.3 异步控制 206 
    9.1.4 加入队列 207 
    9.2 使用UDP的方案 210 
    9.2.1 什么是UDP协议 210 
    9.2.2 TCP协议和UDP协议的区别 212 
    9.2.3 使用Python编写UDP服务 214 
    9.2.4 加入多线程 216 
    9.3 协议包的设计和实现 218 
    9.3.1 协议包头和包身 219 
    9.3.2 协议包完整性 221 
    9.3.3 协议的加密和压缩 222 
    9.3.4 协议包混淆 223 
    9.4 断线重连 224 
    第10章 天梯和经济系统 227 
    10.1 什么是天梯 227 
    10.1.1 天梯的框架 229 
    10.1.2 数据载入 230 
    10.2 天梯层级 231 
    10.3 经济系统 234 
    10.3.1 经济系
  • 内容简介:
    这是一部从实操的角度讲解各种类型的游戏和应用服务器的架构、设计、开发和优化的著作。 
    作者是资深的游戏服务器技术专家和底层技术专家,有20余年开发和管理经验,曾在网易工作7年,参与过各种类型的游戏的研发。 
    本书针对MMORPG、SLG、卡牌、3D虚拟社区等各种游戏,以及App、深度学习服务、商城等各种应用对应的各种类型的服务器的研发和优化给出了具体的指导意见。从单机到集群,从基础的网络编程到分布式架构,由浅入深、承上启下、前后呼应,整本书内容前后贯穿、逻辑缜密,对于开发和运维人员来说相当实用。 
    全书共13章,分为三个部分: 
    第一部分(第1~3章) 网络和服务器 
    本书以Python为描述语言,所以首先详细讲解了Python中的网络编程模块,然后讲解了服务器相关的通信加密、WebSocket、多线程等技术。 
    第二部分(第4~5章) 存储和数据库 
    这部分首先讲解了数据库存储的基础知识,如内存数据同步、数据备份与恢复、SQLite等;然后重点介绍了高并发服务器的存储方案、高速缓存方案、二进制缓存方案、大规模计算方案,以及基于区块链技术的存储方案。 
    第三部分(第6~13章) 服务器架构及其优化 
    第6章和第7章介绍了服务器的架构演变以及不同类型的游戏服务器各自是如何交互的;第8章和第9章详细讲解了游戏大厅和实时交互服务器的架构、开发和优化;第10章讲解了天梯和经济系统的开发与设计;第11章讲解了服务器的承载量以及客户端的优化方案;第12章介绍了分布式服务器相关的技术;第13章从语言的角度对游戏服务器开发的技术选型给出了非常全面的分析。 

  • 作者简介:
    蔡能(DarkSpy) 
    资深服务器底层技术专家和游戏服务器开发专家,有超过20年的编码和团队管理经验,是网易的早期员工之一。 
    在游戏开发领域有非常深厚的积累,带领团队开发了各种类型(PC游戏、手游、页游、2D游戏、3D游戏、VR/AR游戏等)的游戏和应用服务器,对服务器的架构、编写、优化和并发策略有深刻的认识和独到的见解;在C/C++、Python、PHP等技术领域的经验十分丰富。 
    1996~2009年期间,曾编写过极富盛名的EasyCode和EasyCode Pro,以及其他被收录到各大杂志典藏光碟的软件,EasyCode 在参加《程序员》网站举办的”中国共享软件评比”活动时得票数在同类软件中名列前茅。是《程序员》杂志2007~2008年C/C++领域的点评专家,擅长软件架构和底层技术。2013年7月,接受《今日早报》关于游戏行业的采访。 

  • 目录:
    目  录?Contents 
    前 言 
    第一部分 网络和服务器 
    第1章 Python网络编程模块 2 
    1.1 Python Socket 3 
    1.1.1 Socket套接字 3 
    1.1.2 SOCK_STREAM、SOCK_DGRAM 4 
    1.1.3 阻塞和非阻塞模式 5 
    1.2 服务器端其他Socket方法 7 
    1.2.1 bind和listen 7 
    1.2.2 setsockopt 8 
    1.3 客户端Socket 10 
    1.4 通用的Socket方法 12 
    1.4.1 recv和send 12 
    1.4.2 recvfrom和sendto 13 
    1.5 SimpleHTTPServer和BaseHTTPServer 14 
    1.5.1 SimpleHTTPServer 15 
    1.5.2 BaseHTTPServer 15 
    1.6 urllib和urllib2 17 
    1.6.1 urllib.urlopen和urllib2.urlopen 18 
    1.6.2 urllib2中的GET和POST方法 19 
    1.7 事件驱动框架Twisted 20 
    1.7.1 Reactor模式 21 
    1.7.2 run、stop和callLater 23 
    1.7.3 Transports、Protocols、Protocol Factoies以及Deferred 24 
    第2章 通信加密 26 
    2.1 软件、通信加密的几种常用方案 27 
    2.1.1 异或位运算加密 27 
    2.1.2 其他对称加密 29 
    2.1.3 非对称加密 30 
    2.2 OpenSSL 33 
    2.2.1 生成证书 35 
    2.2.2 公钥和私钥的配置 40 
    2.3 SSL/TLS通信 43 
    2.3.1 SSL/TLS连接 45 
    2.3.2 SSL/TLS HTTPS通信 46 
    2.4 其他加密方式 49 
    2.4.1 散列算法 49 
    2.4.2 BASE64 52 
    2.4.3 多国语言 53 
    第3章 服务器实作 55 
    3.1 构建Python Websocket服务器 55 
    3.1.1 Websocket的应用场景 57 
    3.1.2 实作Websocket握手协议 59 
    3.1.3 MAGIC_STRING在Websocket中的作用 60 
    3.1.4 Websocket 启动 62 
    3.1.5 Websocket消息拆分和读取 63 
    3.2 多线程服务器 64 
    3.2.1 Python的多线程模式 65 
    3.2.2 锁 68 
    3.2.3 Python GIL 70 
    3.2.4 multiprocess的解决思路 72 
    3.2.5 给Websocket加上多线程 73 
    3.3 线程池 75 
    3.3.1 默认线程池和进程池 75 
    3.3.2 协程 76 
    3.3.3 第三方库 78 
    3.3.4 gevent的数据结构 85 
    第二部分 存储与数据库 
    第4章 基础内容存储 94 
    4.1 数据库存储的种类 95 
    4.2 SQL与NoSQL 96 
    4.2.1 SQL 96 
    4.2.2 SQL语句语法 97 
    4.2.3 NoSQL 101 
    4.2.4 NoSQL语句语法 106 
    4.3 内存与IO读写速度 108 
    4.4 同步内存数据 109 
    4.4.1 Redis数据库的持久性 111 
    4.4.2 Redis主从数据库复制 112 
    4.5 数据备份和恢复 113 
    4.5.1 备份的类型 114 
    4.5.2 使用Python编写备份代码 115 
    4.6 不可或缺的SQLite 117 
    第5章 存储方案 121 
    5.1 高并发服务器的存储方案 121 
    5.1.1 网站高并发服务器的策略 122 
    5.1.2 数据库的锁 125 
    5.2 高速缓存 127 
    5.2.1 Memcached 127 
    5.2.2 大文件缓存 129 
    5.2.3 分布式和集群 130 
    5.3 二进制存储方案 132 
    5.3.1 磁盘IO和缓存 133 
    5.3.2 图片和影音文件 134 
    5.4 大规模计算 135 
    5.4.1 图片服务器的架构 136 
    5.4.2 读取和写入文本 137 
    5.4.3 文本搜索方案 138 
    5.5 区块链技术 139 
    第三部分 服务器架构及其方案 
    第6章 游戏服务器初探 144 
    6.1 服务器消息和轮询 144 
    6.1.1 卡牌游戏和弱连接 145 
    6.1.2 消息的轮询 147 
    6.2 游戏服务器架构演变 149 
    6.2.1 “上古时代”的游戏服务器 149 
    6.2.2 近代的网络游戏服务器 153 
    6.2.3 近现代经典游戏服务器模型 155 
    6.3 地图的无缝连接 157 
    6.3.1 无缝连接的分析 158 
    6.3.2 无缝地图更深层次的问题 160 
    第7章 游戏服务器的交互 165 
    7.1 无状态和有状态的服务器设计方案 165 
    7.1.1 无状态的服务器设计方案 166 
    7.1.2 有状态的服务器设计方案 167 
    7.2 轮询 169 
    7.3 集群方案 171 
    7.3.1 集群的几种方式 171 
    7.3.2 集群的方案 172 
    7.3.3 数据库方案 173 
    7.3.4 Web服务和数据库 174 
    7.3.5 其他方案 176 
    7.4 定时任务 178 
    第8章 游戏大厅 181 
    8.1 大厅登录流程 181 
    8.1.1 登录和选择游戏区 182 
    8.1.2 注册和登录 183 
    8.2 中间件 185 
    8.2.1 中间件的相关概念 186 
    8.2.2 ElasticSearch 191 
    8.2.3 在Python中使用ES 193 
    8.3 聊天服务 195 
    8.3.1 聊天服务器的搭建 195 
    8.3.2 聊天内容的获取和分发 196 
    8.4 大厅与游戏的对接 198 
    8.4.1 创建房间 198 
    8.4.2 与游戏的对接 199 
    第9章 实时交互服务器 202 
    9.1 长连接和强交互 202 
    9.1.1 TCP连接 203 
    9.1.2 多线程 205 
    9.1.3 异步控制 206 
    9.1.4 加入队列 207 
    9.2 使用UDP的方案 210 
    9.2.1 什么是UDP协议 210 
    9.2.2 TCP协议和UDP协议的区别 212 
    9.2.3 使用Python编写UDP服务 214 
    9.2.4 加入多线程 216 
    9.3 协议包的设计和实现 218 
    9.3.1 协议包头和包身 219 
    9.3.2 协议包完整性 221 
    9.3.3 协议的加密和压缩 222 
    9.3.4 协议包混淆 223 
    9.4 断线重连 224 
    第10章 天梯和经济系统 227 
    10.1 什么是天梯 227 
    10.1.1 天梯的框架 229 
    10.1.2 数据载入 230 
    10.2 天梯层级 231 
    10.3 经济系统 234 
    10.3.1 经济系
查看详情
系列丛书 / 更多
游戏服务器架构与优化
CocosCreator游戏开发实战
满硕泉 著
游戏服务器架构与优化
Unity 3D人工智能编程
[美]昂·斯尤·基奥 著;李秉义 译
游戏服务器架构与优化
移动游戏开发精要
[美]Kimberly、Jeannie Novak 著;龙渊 译
游戏服务器架构与优化
Unity AR/VR开发:从新手到专家
王寒、曾坤、张义红 作者
游戏服务器架构与优化
游戏设计基础(原书第3版)
江涛 译
游戏服务器架构与优化
Unity游戏开发实战(原书第2版)
[美]米歇尔·梅纳德、[美]布莱恩·瓦格斯特夫 著;占红来 译
游戏服务器架构与优化
Unity着色器和屏幕特效开发秘笈
[美]Kenny Lammers 著;晏伟 译
游戏服务器架构与优化
Unity着色器和屏幕特效开发秘笈(原书第2版)
占红来 译者;艾伦·朱科尼(Alan Zucconi);肯尼斯·拉默斯(Kenneth Lammers)
游戏服务器架构与优化
游戏开发工程师修炼之道(原书第3版)
[美]Jeannie Novak 著;陈潮、熊姿 译
游戏服务器架构与优化
Unity着色器和屏幕特效
[美]杰米·迪恩(Jamie Dean) 著;周翀 译
游戏服务器架构与优化
Unreal Engine 4游戏开发秘笈:UE4虚拟现实开发
[美]米奇·麦卡弗里 著;达瓦学院 译
游戏服务器架构与优化
网页游戏开发秘笈
[美]Evan Burchard 著
相关图书 / 更多
游戏服务器架构与优化
游戏数据分析:从方法到实践
数数科技分析师团队 编著
游戏服务器架构与优化
游戏动漫人体结构&类人角色绘画造型技法
[韩]朴炯旭
游戏服务器架构与优化
游戏UI设计原则与实例指导手册(第2版)
李世钦
游戏服务器架构与优化
游戏和博彩中的数学(影印版)
Edward Packel
游戏服务器架构与优化
游戏故事写作(创意写作书系)
[美]迈克尔·布劳特(Michael Breault)
游戏服务器架构与优化
游戏中的科学【全6册】在科学游戏中训练游戏思维培养习惯中小学课外阅读书籍青少年儿童书籍6-8-12儿童科普大百科激发孩子科学兴趣培养动手能力
陈亮亮
游戏服务器架构与优化
游戏活动指导——游戏是儿童的生命(幼儿园班级管理丛书)
崔利玲 主编;朱水莲
游戏服务器架构与优化
游戏动漫人物设计指南 设计思想人体结构角色创作
[英]凯文·克罗斯利(Kevin Crossley)
游戏服务器架构与优化
游戏架构设计与策划基础(第3版)
刘炎
游戏服务器架构与优化
游戏UI设计项目实战
周婷 主编;张婕 副主编;彭阳;李琳
游戏服务器架构与优化
游戏出海合规指引
李金招;蒋晓焜
游戏服务器架构与优化
游戏力:儿童游戏治疗基础与进阶(第2版)
[美]泰瑞·科特曼 著;张婷婷 秦红梅 郑淑丽 译