计算机
类型
可以朗读
语音朗读
339千字
字数
2020-09-01
发行日期
展开全部
主编推荐语
帮助服务器开发人员更好地理解服务器框架的设计与开发。
内容简介
本书从零开始,详细阐述游戏服务器设计与开发的流程和技术点,包括网络通信、分布式架构设计、内部RPC通信、数据管理、多线程管理,并从实践的角度出发,配合详细的源码,帮助广大游戏服务器开发人员,或正在考虑从事游戏服务器开发的人员,更加系统地学习服务器架构的设计与开发。本书实用性强,既可以帮助想从事服务器开发的人员快速学习相关知识,又可以帮助服务器开发人员向架构师进阶。
目录
- 版权信息
- 内容提要
- 前言
- 第1章 游戏服务器架构总体设计
- 1.1 游戏服务器架构设计的意义
- 1.1.1 良好的架构设计有助于团队协作开发
- 1.1.2 良好的架构设计有助于避免bug的产生
- 1.1.3 良好的架构设计有助于制定合理的项目开发周期计划
- 1.1.4 良好的架构设计有利于测试
- 1.2 游戏服务器架构分类
- 1.2.1 单体游戏服务器架构
- 1.2.2 分布式游戏服务器架构
- 1.3 游戏服务器架构基本模块
- 1.3.1 网络通信长连接与短连接
- 1.3.2 网关
- 1.3.3 服务消息交互——消息中间件
- 1.3.4 业务处理框架
- 1.3.5 测试模块
- 1.4 本章总结
- 第2章 服务器项目管理
- 2.1 Eclipse中配置Maven工具
- 2.1.1 Maven下载与配置
- 2.1.2 Maven环境变量配置
- 2.1.3 Maven常用命令示例
- 2.2 搭建Maven仓库中心
- 2.2.1 安装Nexus
- 2.2.2 在Maven中配置私服
- 2.2.3 添加非开源依赖Jar包
- 2.3 创建Maven项目
- 2.3.1 创建父项目
- 2.3.2 创建子项目
- 2.4 本章总结
- 第3章 数据库选择与安装
- 3.1 数据持久化
- 3.1.1 为什么使用MongoDB
- 3.1.2 安装MongoDB
- 3.2 内存型数据库
- 3.2.1 为什么使用Redis
- 3.2.2 安装Redis
- 3.2.3 使用Redis缓存需要注意的事项
- 3.3 本章总结
- 第4章 游戏服务中心开发
- 4.1 游戏服务中心的作用
- 4.1.1 游戏服务中心提供游戏外围服务
- 4.1.2 游戏服务中心方便动态扩展
- 4.2 游戏服务中心开发准备
- 4.2.1 根据需求设计架构
- 4.2.2 Spring Cloud简介
- 4.2.3 安装Spring Tool插件
- 4.2.4 添加公共pom依赖
- 4.3 用户登录注册功能开发
- 4.3.1 创建游戏服务中心项目
- 4.3.2 网络通信数据格式定义
- 4.3.3 添加数据库操作
- 4.3.4 实现登录注册
- 4.3.5 全局异常捕获处理
- 4.3.6 登录注册测试
- 4.3.7 实现角色创建
- 4.3.8 角色创建测试
- 4.4 本章总结
- 第5章 Web服务器网关开发
- 5.1 Consul服务注册中心
- 5.1.1 Consul简介
- 5.1.2 安装Consul
- 5.2 Web服务器网关功能开发
- 5.2.1 Spring Cloud Gateway简介
- 5.2.2 创建Web服务器网关项目
- 5.2.3 网关路由信息配置
- 5.2.4 测试Web服务器网关请求转发
- 5.3 统一验证请求权限
- 5.3.1 在Web服务器网关进行权限验证的必要性
- 5.3.2 网关全局过滤组件——GlobalFilter
- 5.3.3 GlobalFilter实现权限验证
- 5.3.4 测试网关权限验证
- 5.4 请求负载均衡
- 5.4.1 负载均衡组件——Spring Cloud Ribbon
- 5.4.2 自定义负载均衡策略
- 5.4.3 负载均衡策略配置
- 5.5 网关流量限制
- 5.5.1 常见的限流算法
- 5.5.2 添加Web服务器网关限流策略
- 5.5.3 Web服务限流测试
- 5.6 HTTPS请求配置
- 5.6.1 HTTPS简介
- 5.6.2 HTTPS证书申请
- 5.6.3 网关服务配置HTTPS证书
- 5.6.4 测试HTTPS访问
- 5.7 服务错误异常全局捕获
- 5.7.1 默认全局Web异常捕获
- 5.7.2 自定义全局Web异常捕获
- 5.7.3 异常捕获测试
- 5.8 本章总结
- 第6章 游戏服务器网关开发
- 6.1 游戏服务器网关管理
- 6.1.1 游戏服务器网关必须支持动态伸缩
- 6.1.2 游戏服务器网关项目搭建与配置
- 6.1.3 游戏服务器网关信息缓存管理
- 6.1.4 游戏服务器网关负载均衡策略
- 6.1.5 测试游戏服务器网关信息
- 6.2 客户端与游戏服务器网关通信开发
- 6.2.1 客户端项目创建
- 6.2.2 网络通信数据粘包与断包
- 6.2.3 网络通信协议制定
- 6.2.4 客户端消息编码与解码开发
- 6.2.5 游戏服务器网关消息编码与解码开发
- 6.2.6 使用Netty实现游戏服务器网关长连接服务
- 6.3 请求消息参数与响应消息参数对象化
- 6.3.1 请求与响应消息封装
- 6.3.2 客户端与游戏服务器网关通信测试
- 6.4 消息体对象序列化与反序列化
- 6.4.1 消息体使用JSON序列化与反序列化
- 6.4.2 消息体使用Protocol Buffers序列化与反序列化
- 6.5 消息自动分发处理
- 6.5.1 消息自动分发设计
- 6.5.2 消息自动分发开发
- 6.6 网络通信安全
- 6.6.1 连接认证
- 6.6.2 通信协议加密和解密
- 6.6.3 游戏服务器网关流量限制
- 6.7 网络连接管理
- 6.7.1 连接管理
- 6.7.2 连接心跳检测
- 6.7.3 消息幂等处理
- 6.8 本章总结
- 第7章 游戏服务器网关与游戏业务服务数据通信
- 7.1 游戏服务器网关与游戏业务服务通信定义
- 7.1.1 游戏服务器网关消息转发
- 7.1.2 定义消息通信模型
- 7.1.3 Spring Cloud Bus 消息总线
- 7.1.4 消息总线通信层——Kafka
- 7.1.5 消息总线消息发布订阅测试
- 7.2 游戏服务器网关与游戏业务服务通信实现
- 7.2.1 消息序列化与反序列化实现
- 7.2.2 游戏服务器网关消息负载均衡
- 7.2.3 游戏服务器网关消息转发实现
- 7.2.4 游戏服务器网关监听接收响应消息
- 7.2.5 添加游戏业务服务项目
- 7.2.6 游戏服务接收并响应网关消息
- 7.3 游戏服务器网关与游戏服务通信测试
- 7.4 本章总结
- 第8章 游戏业务处理框架开发
- 8.1 游戏服务器中的多线程管理
- 8.1.1 线程数量的管理
- 8.1.2 游戏服务线程池分配
- 8.2 Netty线程池模型
- 8.2.1 Netty线程模型的核心类
- 8.2.2 获取线程池执行结果
- 8.3 客户端消息处理管理
- 8.3.1 借鉴Netty的消息处理机制
- 8.3.2 客户端消息事件处理框架模型
- 8.3.3 实现自定义MultithreadEventExecutorGroup
- 8.3.4 实现GameChannel
- 8.3.5 实现GameChannelPipeline
- 8.3.6 实现AbstractGameChannelHandlerContext
- 8.3.7 实现客户端消息处理与消息返回
- 8.3.8 GameChannel空闲超时处理
- 8.4 不同游戏用户之间的数据交互
- 8.4.1 多线程并发操作数据导致的错误或异常
- 8.4.2 在功能设计上避免用户数据之间的直接交互
- 8.4.3 在架构设计上解决用户数据之间的直接交互
- 8.4.4 GameChannel事件自动分发处理
- 8.5 本章总结
- 第9章 游戏用户数据管理
- 9.1 游戏用户数据异步加载
- 9.1.1 加载游戏数据的时机
- 9.1.2 异步加载游戏数据实现
- 9.2 游戏数据持久化到数据库
- 9.2.1 游戏数据持久化方式
- 9.2.2 异步方式持久化数据的并发问题
- 9.2.3 数据定时异步持久化实现
- 9.3 Player对象的封装与使用
- 9.3.1 直接操作Player对象的弊端
- 9.3.2 实现Player对象数据与行为分离
- 9.4 本章总结
- 第10章 RPC通信设计与实现
- 10.1 游戏模块服务划分
- 10.1.1 游戏服务需不需要微服务化
- 10.1.2 游戏服务模块进程划分规则
- 10.2 RPC通信实现
- 10.2.1 自定义RPC设计
- 10.2.2 负载均衡管理
- 10.2.3 创建竞技场服务项目
- 10.2.4 RPC请求消息的发送与接收
- 10.2.5 RPC响应消息的发送与接收
- 10.2.6 RPC请求超时检测
- 10.3 本章总结
- 第11章 事件系统的设计与实现
- 11.1 事件系统在服务器开发中的重要性
- 11.1.1 什么是事件系统
- 11.1.2 事件系统可以解耦模块依赖
- 11.1.3 事件系统使代码更容易维护
- 11.2 事件系统的实现
- 11.2.1 自定义基于监听接口的事件系统
- 11.2.2 自定义基于注解的事件系统
- 11.2.3 Spring事件系统应用
- 11.3 根据事件实现的任务系统
- 11.3.1 任务系统需求
- 11.3.2 面向过程的任务系统实现
- 11.3.3 面向对象的事件触发式任务系统实现
- 11.4 本章总结
- 第12章 游戏服务器自动化测试
- 12.1 游戏服务器自动化测试的重要性
- 12.1.1 单元测试使代码更简洁
- 12.1.2 单元测试保证方法的代码正确性
- 12.1.3 自动化测试保证代码重构的安全性
- 12.2 游戏服务器自动化测试的实现
- 12.2.1 TestNG框架简介
- 12.2.2 Spring Boot单元测试配置
- 12.2.3 方法单元测试案例实现
- 12.2.4 服务器集成测试实现
- 12.2.5 使用TestNG配置文件区分不同的测试环境
- 12.3 本章总结
- 第13章 服务器开发实例
- 13.1 单服世界聊天系统实现
- 13.1.1 添加客户端命令
- 13.1.2 服务器实现消息转发
- 13.1.3 单服世界聊天测试
- 13.2 分布式世界聊天系统实现
- 13.2.1 分布式世界聊天系统设计
- 13.2.2 创建单独的聊天项目
- 13.2.3 实现聊天消息的发布与转发
- 13.2.4 分布式世界聊天服务测试
- 13.3 本章总结
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。