(1)作者是资深服务器底层技术专家、游戏服务器发专家,20余年经验总结,曾在网易工作7年,参与过各种类型游戏和应用的服务器的架构、设计和发; (2)针对各种游戏和应用所对应的服务器类型,从单机到集群,有针对性地对服务器行架构上的剖析和优化; (3)极客邦科技(InfoQ)和Talkingdata增长黑客负责人于洋鼎力推荐。
售 价:¥
纸质售价:¥57.00购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
前言
为什么要写这本书
读者对象
如何阅读本书
勘误和支持
致谢
第一部分 网络和服务器
第1章 Python网络编程模块
1.1 Python Socket
1.1.1 Socket套接字
1.1.2 SOCK_STREAM、SOCK_DGRAM
1.1.3 阻塞和非阻塞模式
1.2 服务器端其他Socket方法
1.2.1 bind和listen
1.2.2 setsockopt
1.3 客户端Socket
1.4 通用的Socket方法
1.4.1 recv和send
1.4.2 recvfrom和sendto
1.5 SimpleHTTPServer和BaseHTTPServer
1.5.1 SimpleHTTPServer
1.5.2 BaseHTTPServer
1.6 urllib和urllib2
1.6.1 urllib.urlopen和urllib2.urlopen
1.6.2 urllib2中的GET和POST方法
1.7 事件驱动框架Twisted
1.7.1 Reactor模式
1.7.2 run、stop和callLater
1.7.3 Transports、Protocols、Protocol Factoies以及Deferred
第2章 通信加密
2.1 软件、通信加密的几种常用方案
2.1.1 异或位运算加密
2.1.2 其他对称加密
2.1.3 非对称加密
2.2 OpenSSL
2.2.1 生成证书
2.2.2 公钥和私钥的配置
2.3 SSL/TLS通信
2.3.1 SSL/TLS连接
2.3.2 SSL/TLS HTTPS通信
2.4 其他加密方式
2.4.1 散列算法
2.4.2 BASE64
2.4.3 多国语言
第3章 服务器实作
3.1 构建Python Websocket服务器
3.1.1 Websocket的应用场景
3.1.2 实作Websocket握手协议
3.1.3 MAGIC_STRING在Websocket中的作用
3.1.4 Websocket启动
3.1.5 Websocket消息拆分和读取
3.2 多线程服务器
3.2.1 Python的多线程模式
3.2.2 锁
3.2.3 Python GIL
3.2.4 multiprocess的解决思路
3.2.5 给Websocket加上多线程
3.3 线程池
3.3.1 默认线程池和进程池
3.3.2 协程
3.3.3 第三方库
3.3.4 gevent的数据结构
第二部分 存储与数据库
第4章 基础内容存储
4.1 数据库存储的种类
4.2 SQL与NoSQL
4.2.1 SQL
4.2.2 SQL语句语法
4.2.3 NoSQL
4.2.4 NoSQL语句语法
4.3 内存与IO读写速度
4.4 同步内存数据
4.4.1 Redis数据库的持久性
4.4.2 Redis主从数据库复制
4.5 数据备份和恢复
4.5.1 备份的类型
4.5.2 使用Python编写备份代码
4.6 不可或缺的SQLite
第5章 存储方案
5.1 高并发服务器的存储方案
5.1.1 网站高并发服务器的策略
5.1.2 数据库的锁
5.2 高速缓存
5.2.1 Memcached
5.2.2 大文件缓存
5.2.3 分布式和集群
5.3 二进制存储方案
5.3.1 磁盘IO和缓存
5.3.2 图片和影音文件
5.4 大规模计算
5.4.1 图片服务器的架构
5.4.2 读取和写入文本
5.4.3 文本搜索方案
5.5 区块链技术
第三部分 服务器架构及其方案
第6章 游戏服务器初探
6.1 服务器消息和轮询
6.1.1 卡牌游戏和弱连接
6.1.2 消息的轮询
6.2 游戏服务器架构演变
6.2.1 “上古时代”的游戏服务器
6.2.2 近代的网络游戏服务器
6.2.3 近现代经典游戏服务器模型
6.3 地图的无缝连接
6.3.1 无缝连接的分析
6.3.2 无缝地图更深层次的问题
第7章 游戏服务器的交互
7.1 无状态和有状态的服务器设计方案
7.1.1 无状态的服务器设计方案
7.1.2 有状态的服务器设计方案
7.2 轮询
7.3 集群方案
7.3.1 集群的几种方式
7.3.2 集群的方案
7.3.3 数据库方案
7.3.4 Web服务和数据库
7.3.5 其他方案
7.4 定时任务
第8章 游戏大厅
8.1 大厅登录流程
8.1.1 登录和选择游戏区
8.1.2 注册和登录
8.2 中间件
8.2.1 中间件的相关概念
8.2.2 ElasticSearch
8.2.3 在Python中使用ES
8.3 聊天服务
8.3.1 聊天服务器的搭建
8.3.2 聊天内容的获取和分发
8.4 大厅与游戏的对接
8.4.1 创建房间
8.4.2 与游戏的对接
第9章 实时交互服务器
9.1 长连接和强交互
9.1.1 TCP连接
9.1.2 多线程
9.1.3 异步控制
9.1.4 加入队列
9.2 使用UDP的方案
9.2.1 什么是UDP协议
9.2.2 TCP协议和UDP协议的区别
9.2.3 使用Python编写UDP服务
9.2.4 加入多线程
9.3 协议包的设计和实现
9.3.1 协议包头和包身
9.3.2 协议包完整性
9.3.3 协议的加密和压缩
9.3.4 协议包混淆
9.4 断线重连
第10章 天梯和经济系统
10.1 什么是天梯
10.1.1 天梯的框架
10.1.2 数据载入
10.2 天梯层级
10.3 经济系统
10.3.1 经济系统简介
10.3.2 经济系统的设计
10.3.3 通货膨胀
10.4 预留接口和热更新
10.4.1 如何预留接口
10.4.2 代码热更新
第11章 服务器承载量和客户端优化方案
11.1 心跳服务
11.1.1 应用层的心跳服务
11.1.2 心跳包协议
11.2 同步校验
11.2.1 服务器数据包同步
11.2.2 游戏世界的同步
11.3 服务器承载
11.3.1 Python的多线程并发
11.3.2 混合C/C++之一
11.3.3 混合C/C++之二
11.4 守护者进程
11.4.1 Windows下的守护者进程
11.4.2 监控和重启进程
11.5 客户端优化方案
11.5.1 优化解决方案
11.5.2 游戏引擎
第12章 分布式服务器
12.1 什么是分布式系统
12.1.1 分布式文件系统
12.1.2 分布式服务
12.1.3 Python实现
12.2 流式处理
12.2.1 Storm
12.2.2 Spark
12.2.3 Samza
12.2.4 Flink
12.2.5 Trident
12.3 Python分布式框架
附录A 不同语言之间的区别
A.1 C/C++语言
A.2 Java和C#
A.3 go和Rust
A.4 Ruby和Node.js
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜