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

Loginapp

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

Baseapp

通过Loginapp分配过来的Client会与Baseapp保持连接,完成客户端与服务端的交互。

定时把Entity的数据保存进数据库。

Baseapp之间会进行互相备份,保证数据的安全。

灾难恢复-当Baseapp发生问题(崩溃、断开连接等)时,会自动进行恢复。

常见用法

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

BaseappMgr

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

Cellapp

处理游戏、空间或位置有关的逻辑

空间数据管理,如增加几何映射、设置空间数据

抽象概念-Space空间的创建和摧毁。

常见用法

Navigate导航

AI逻辑

战斗系统

View视图的控制

可以增加一个副本或者房间

CellappMgr

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

DBMgr

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

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

作用

对数据库的访问。

高性能多线程的数据存取。

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

Machine(信息中心)

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

接收远程指令,处理本机上的组件启动与关闭;

通知服务器群组各个进程的存活状态;

提供本机上运行组件的接入口;

收集当前机器上的一些信息,如:CPU、内存、带宽等。

工具组件:

Interfaces

快速接入第三方计费、第三方账号、第三方数据

快速与运营系统耦合

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

Logger

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

组件相关路径

脚本:kbengine\assets\scripts

源码:kbengine\kbe\src\server

参考:

kbengine源码_KBEngine源码:组件方案相关推荐

  1. kbengine源码_KBEngine源码:EntityCall

    在之前的章节中一直提到EntityCall,那什么是EntityCall?我们可以简单的理解为:封装远程交互.通讯等方法的一种对象,是脚本层与实体远程交互的常规手段. EntityCall的底层实现原 ...

  2. kbengine源码_kbengine mmo源码(完整服务端源码+资源+完整客户端源码)

    本项目作为kbengine服务端引擎的客户端演示而写 更新kbengine插件库(https://github.com/kbengine/kbengine_unity3d_plugins):    * ...

  3. live555 源码分析:RTSPServer 组件结构

    前面几篇文章分析了 live555 中 RTSP 的处理逻辑,RTSP 处理有关组件的处理逻辑有点复杂,本文就再来梳理一下它们之间的关系. live555 中 RTSP 处理有关组件关系如下图: 事件 ...

  4. asp.net core源码飘香:Logging组件

    简介: 作为基础组件,日志组件被其他组件和中间件所使用,它提供了一个统一的编程模型,即不需要知道日志最终记录到哪里去,只需要调用它即可. 使用方法很简单,通过依赖注入ILogFactory(Creat ...

  5. asp.net core源码飘香:Options组件

    简介: Options组件是一个小组件,但用的地方很多.它本质是将一个POCO类注册到容器中(主要在Startup中作为其他组件的配置功能提供),后续使用的时候就可以通过比如构造函数注入等获取到POC ...

  6. 12 哈希表相关类——Live555源码阅读(一)基本组件类

    12 哈希表相关类--Live555源码阅读(一)基本组件类 这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 ...

  7. 游戏服务端引擎(kbengine完整代码+demo源码)

    2019独角兽企业重金招聘Python工程师标准>>> Demo: Ogre. Demo: Unity3d. PyConsole: display server informatio ...

  8. 深入学习jquery源码之高德地图组件的使用

    深入学习jquery源码之高德地图组件的使用 高德地图组件是一类高度模块化的LBS服务组件,开发者通过调用相应标签便可轻松实现诸如在地图上标注点.查找附近poi.公交/驾车线路规划等功能.该类组件仅针 ...

  9. 变频器源码、图纸、伺服驱动器和变频器源码、图纸、生产方案

    变频器源码.图纸.生产方案 伺服驱动器和变频器源码.图纸.生产方案 此文件包涵盖 1.迈信EP100交流伺服驱动器C源码,PCB原理图 2.英威腾GD300变频器C源码,PCB原理图.生产方案 3.M ...

最新文章

  1. Financiers Game CodeForces - 737D (博弈论,区间dp)
  2. UVA 11626 凸包(含共线)
  3. Spring Cloud Netflix—如何加入Hystrix
  4. SAP保存操作记录CDHDR和CDPOS表
  5. CCF201503-1 图像旋转(100分)
  6. Python 数据分析三剑客之 Matplotlib(六):直方图 / 柱状图 / 条形图的绘制
  7. mysql or全表_mysql or条件可以使用索引而避免全表
  8. [贪心][模拟] Jzoj P5811 简单的填数
  9. 【答疑】对象存储OSS常见问题解答(SDK类2)
  10. 计算机硬件 系统安装维护教程 04系统安装-Win-02:使用Dism++对系统进行初始化前配置
  11. c语言中取反位运算的作用,C语言位运算符及作用与或异或取反左移和右移
  12. centos检测不到磁盘_CentOS 7 安装时候检测不到空余硬盘的解决办法
  13. 英特尔nuc做网站服务器,难以想象 英特尔把至强处理器塞进了NUC
  14. hibernate查询结果映射到实体和map的方法
  15. 计算机正确的录入指法教案,《文字录入教案》word版.doc
  16. 编译原理2---A Power Tool 正则表达式
  17. SVN设置忽略文件列表
  18. redis可以代替mysql 吗_redis是否可以代替mysql
  19. 安装软件时内存还有很多却依然提示空间不足的解决办法
  20. android dumpsys 分析,Android内存分析工具-dumpsys meminfo

热门文章

  1. 登录win7系统后又自动弹出到用户登录界面
  2. 33名中国游客护照被偷 驻意大利使馆加班办证获赞
  3. spring 容器中bean的扩展点记录 —— 个人学习记录
  4. Windows Touch Input WM_GESTURE WM_TOUCH
  5. 谷歌、苹果纷纷出招 盘点物联网一周大事件
  6. 怎么重置imac_[Mac硬件]如何重置 Mac 的 SMC
  7. 如何做出好感度高的发言
  8. 22名大学生一夜之间被开除:在最好的位置上懒惰,你到底会失去什么
  9. 机器视觉初步13:3D相机介绍
  10. 前端之实现讯飞语音听写(流式版)