最后一战(LastBattle)服务器源码分析1——服务器架构

2023-10-31 10:20

本文主要是介绍最后一战(LastBattle)服务器源码分析1——服务器架构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

服务器架构简图如下:

LastBattle服务器架构图

连线说明:

  • 实线:表示客户端登录流程,①②③④⑤表示登录流程,详细解释见下文。
  • 虚线:表示服务器间的连接,虚线箭头指向监听方。

架构说明:

英文名称简称中文名称功能简介单个大区需求数量数量说明
GameClientGC游戏客户端不解释n不超服务器承载上限均可
LoginSerLS游戏登录服务器用于登录验证的服务器1登录入口仅需一个
GateSerGS游戏网关服务器用于客户端与其场景服和中心服通讯的转接n根据客户端连接数量调整
BalanceSerBS游戏负载均衡服务器用于负载均衡,给客户端分配合理的网关服,其上连接多台GSn根据实际需求配置
SceneSerSS游戏场景服务器用于游戏战斗的服务器n根据实际需求配置
CentralSerCS游戏中心服务器用于玩家数据管理,匹配等核心功能服务器1统一管理玩家数据
LogSer游戏日志服务器用于游戏日志收集1统一日志收集
UserRedis游戏玩家数据缓存服务器用于缓存玩家数据1统一数据缓存
LogicRedis游戏逻辑数据缓存服务器用于缓存游戏数据1统一数据缓存
MySql游戏数据库用于持久化游戏及玩家数据1统一数据存储
Remote游戏远程控制端用于输入gm命令等远程控制n根据实际需求配置

登录流程:

  • ①②:客户端发送消息AskLogin到LS,LS根据客户端登录类型生成相应的url,通过消息队列m_SDKCallbackQueue发送给子线程调用url来获取登录验证结果,子线程将url返回结果通过消息队列m_DBCallbackQueue发送给主线程,根据返回结果将BS列表发送给客户端。ps:这块需要了解boost库和liburl库的基本用法
  • ③④:客户端收到LS返回的BS服务器列表后,选择其中一台BS发送消息eMsgToBSFromGC_OneClientLogin,BS收到该消息后会向LS发消息eMsgToLSFromBC_OneClinetLoginCheck来进行身份验证,验证通过后会通知客户端登录成功,同时BS给该玩家生成一个唯一token并将玩家token信息根据负载均衡策略发送给目前负载较小的GS来进行登记,登记成功后GS返回其ip和端口等信息到BS,进而发送给客户端。
  • :客户端收到GS的ip和端口等信息后,发送登录消息给GS,GS校验token成功后会将登录信息转发给CS,游戏玩家数据实际是在CS上加载并创建玩家实体。到此,玩家登录完成,后续玩家在CS和SS上的操作消息都会通过GS作为中间桥梁和客户端通讯。

中心服CS:

最后一战(LastBattle)服务器源码分析2——中心服务器(CentralServer)

场景服SS:

最后一战(LastBattle)服务器源码分析3——场景服务器(SceneServer)

数据存储:

网络通讯:

第三方库:

日志系统:

其他系统:

定时器:最后一战(LastBattle)服务器源码分析8.1——定时器
线程:

总结:

这篇关于最后一战(LastBattle)服务器源码分析1——服务器架构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/314676

相关文章

Window Server创建2台服务器的故障转移群集的图文教程

《WindowServer创建2台服务器的故障转移群集的图文教程》本文主要介绍了在WindowsServer系统上创建一个包含两台成员服务器的故障转移群集,文中通过图文示例介绍的非常详细,对大家的... 目录一、 准备条件二、在ServerB安装故障转移群集三、在ServerC安装故障转移群集,操作与Ser

NFS实现多服务器文件的共享的方法步骤

《NFS实现多服务器文件的共享的方法步骤》NFS允许网络中的计算机之间共享资源,客户端可以透明地读写远端NFS服务器上的文件,本文就来介绍一下NFS实现多服务器文件的共享的方法步骤,感兴趣的可以了解一... 目录一、简介二、部署1、准备1、服务端和客户端:安装nfs-utils2、服务端:创建共享目录3、服

Redis主从/哨兵机制原理分析

《Redis主从/哨兵机制原理分析》本文介绍了Redis的主从复制和哨兵机制,主从复制实现了数据的热备份和负载均衡,而哨兵机制可以监控Redis集群,实现自动故障转移,哨兵机制通过监控、下线、选举和故... 目录一、主从复制1.1 什么是主从复制1.2 主从复制的作用1.3 主从复制原理1.3.1 全量复制

Redis主从复制的原理分析

《Redis主从复制的原理分析》Redis主从复制通过将数据镜像到多个从节点,实现高可用性和扩展性,主从复制包括初次全量同步和增量同步两个阶段,为优化复制性能,可以采用AOF持久化、调整复制超时时间、... 目录Redis主从复制的原理主从复制概述配置主从复制数据同步过程复制一致性与延迟故障转移机制监控与维

Python项目打包部署到服务器的实现

《Python项目打包部署到服务器的实现》本文主要介绍了PyCharm和Ubuntu服务器部署Python项目,包括打包、上传、安装和设置自启动服务的步骤,具有一定的参考价值,感兴趣的可以了解一下... 目录一、准备工作二、项目打包三、部署到服务器四、设置服务自启动一、准备工作开发环境:本文以PyChar

Redis连接失败:客户端IP不在白名单中的问题分析与解决方案

《Redis连接失败:客户端IP不在白名单中的问题分析与解决方案》在现代分布式系统中,Redis作为一种高性能的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景,然而,在实际使用过程中,我们可能... 目录一、问题背景二、错误分析1. 错误信息解读2. 根本原因三、解决方案1. 将客户端IP添加到Re

Apache Tomcat服务器版本号隐藏的几种方法

《ApacheTomcat服务器版本号隐藏的几种方法》本文主要介绍了ApacheTomcat服务器版本号隐藏的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1. 隐藏HTTP响应头中的Server信息编辑 server.XML 文件2. 修China编程改错误

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

Redis主从复制实现原理分析

《Redis主从复制实现原理分析》Redis主从复制通过Sync和CommandPropagate阶段实现数据同步,2.8版本后引入Psync指令,根据复制偏移量进行全量或部分同步,优化了数据传输效率... 目录Redis主DodMIK从复制实现原理实现原理Psync: 2.8版本后总结Redis主从复制实

如何在一台服务器上使用docker运行kafka集群

《如何在一台服务器上使用docker运行kafka集群》文章详细介绍了如何在一台服务器上使用Docker运行Kafka集群,包括拉取镜像、创建网络、启动Kafka容器、检查运行状态、编写启动和关闭脚本... 目录1.拉取镜像2.创建集群之间通信的网络3.将zookeeper加入到网络中4.启动kafka集群