KBEngine源码:组件方案

摘要:
相对于skynet,KBEngine提供了完整的组件方案。Loginapp登录验证、注册、Client的接入口。Baseapp通过Loginapp分配过来的Client会与Baseapp保持连接,完成客户端与服务端的交互。定时把Entity的数据保存进数据库。Baseapp之间会进行互相备份,保证数据的安全。BaseappMgr协调所有Baseapp的工作,包括Baseapp负载均衡处理等。同时,一个KBE架构中,只会出现一个DBMgr。

相对于skynet,KBEngine提供了完整的组件方案。

Loginapp

登录验证、注册、Client的接入口。

Baseapp

  1. 通过Loginapp分配过来的Client会与Baseapp保持连接,完成客户端与服务端的交互。
  2. 定时把Entity的数据保存进数据库。
  3. Baseapp之间会进行互相备份,保证数据的安全。
  4. 灾难恢复-当Baseapp发生问题(崩溃、断开连接等)时,会自动进行恢复。

常见用法

Baseapp上不涉及与空间或位置相关的逻辑,所以脚本层通常会选择在baseapp上实现如:社交系统、广播聊天、排行、游戏大厅等等逻辑系统。

BaseappMgr

协调所有Baseapp的工作,包括Baseapp负载均衡处理等。一个KBE架构中,只会出现一个BaseappMgr。

Cellapp

  1. 处理游戏、空间或位置有关的逻辑
  2. 空间数据管理,如增加几何映射、设置空间数据
  3. 抽象概念-Space空间的创建和摧毁。

常见用法

  1. Navigate导航
  2. AI逻辑
  3. 战斗系统
  4. View视图的控制
  5. 可以增加一个副本或者房间

CellappMgr

负责协调所有Cellapp的工作,包括负载均衡处理等。一个KBE架构中,只会出现一个CellappMgr。

DBMgr

数据库管理器,管理与底层数据库的通讯。可以连接Mysql、Redis等多种数据库,并且能连接多台数据库进行负载均衡。

DBMgr最多可以挂65535个数据库,这些数据库可以在不同硬件上也可以在相同的机器上,api使用时,通过Entity.writeToDB等接口和一定的算法,指定存储到某个地方,这样就可以平均分配到不同的数据库上了。同时,Mysql等数据库都有自己的分库分表机制,可以共同协助完成这项工作。

作用

  1. 对数据库的访问。
  2. 高性能多线程的数据存取。

默认使用Mysql作为数据库。同时,一个KBE架构中,只会出现一个DBMgr。

Machine(信息中心)

抽象出来的一个服务端硬件节点(一台硬件服务器只能存在一个这样的进程)。

  1. 接收远程指令,处理本机上的组件启动与关闭;
  2. 通知服务器群组各个进程的存活状态;
  3. 提供本机上运行组件的接入口;
  4. 收集当前机器上的一些信息,如:CPU、内存、带宽等。

工具组件:

Interfaces

  1. 快速接入第三方计费、第三方账号、第三方数据
  2. 快速与运营系统耦合

多台机器下可以共同一个Interfaces。

Logger

日志服务器。收集和备份各个组件的运行日志。

组件相关路径

脚本:kbengineassetsscripts

源码:kbenginekbesrcserver

参考:

cbe引擎概览

免责声明:文章转载自《KBEngine源码:组件方案》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Combobox 控件绑定数据【tensorflow2.0】模型层layers下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

从微信SDK看ProtoBuffer文件的生成

前言 Protocol Buffers (下面简称PB)是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。它支持多种语言,比如C++,Java,C#,Python,JavaScript等等。目前它的最新版本是3.0.0。与...

禅道从windows迁移到linux

一、禅道数据库备份 1.1、在Windows下安装的禅道备份数据库 很多人觉得无从下手,甚至数据库账号密码都不知道怎么办,我的是在windows server 2008上安装的禅道,在安装目录下比如我的是C:UsersAdministratorDownloadsxamppzentaoconfigmy.php下有mysql的信息,端口账号密码是不是一下子就有...

MongoDB(4.4)使用

MongoDB(4.4)使用 1、MongoDB 安装服务(已经安装的不用) 打开bin目录下的mongod.cfg文件(注意:对应自己的安装路径) 可以看到已经给我们配置好了数据库存放路径和日志存放路径,还有网络设置,若需修改,直接在此处进行修改即可。安装(最好以管理员身份): mongod --config "E:mgbinmongod.cfg" -...

mysql中文乱码解决方式

近期项目使用到mysql。却突然出现了中文乱码问题。尝试了多种方案,最终解决乱码问题,总结一下解决方式,给遇到同样问题的人一点參考。 中文乱码的原因 1.安装mysqlserver的时候编码集设定有问题 2.创建数据库的时候编码集设定有问题 3.创建表的时候编码集设定有问题 4.client的编码集设定有问题 能够通过命令查看编码集: show...

Linux 中 sqlite3 基本操作

https://www.runoob.com/sqlite/sqlite-commands.html 一 。linux 下安装数据库和创建一个数据库 1. Linux 下安装sqlite3 需要两个命令 即可    (1) sudo apt-get install sqlite     (2) sudo apt-get install libsqlite3...

Apache Ranger 1.1.0源码导入IDEA并运行调试security-admin web模块

前言 Apache Ranger是什么,它是一个为Hadoop平台提供了全面的数据安全访问控制及监控的集中式管理框架,Apache顶级项目。不废话了,其实本篇没那么高大上,就是一步步教你如何将Ranger源码导入到IDEA,并运行调试其web模块。 导入源码 第一步当然是下载源码,这里选用了最新版1.1.0 git clone https://g...