kbengine源码_KBEngine源码:组件方案
相对于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源码:组件方案相关推荐
- kbengine源码_KBEngine源码:EntityCall
在之前的章节中一直提到EntityCall,那什么是EntityCall?我们可以简单的理解为:封装远程交互.通讯等方法的一种对象,是脚本层与实体远程交互的常规手段. EntityCall的底层实现原 ...
- kbengine源码_kbengine mmo源码(完整服务端源码+资源+完整客户端源码)
本项目作为kbengine服务端引擎的客户端演示而写 更新kbengine插件库(https://github.com/kbengine/kbengine_unity3d_plugins): * ...
- live555 源码分析:RTSPServer 组件结构
前面几篇文章分析了 live555 中 RTSP 的处理逻辑,RTSP 处理有关组件的处理逻辑有点复杂,本文就再来梳理一下它们之间的关系. live555 中 RTSP 处理有关组件关系如下图: 事件 ...
- asp.net core源码飘香:Logging组件
简介: 作为基础组件,日志组件被其他组件和中间件所使用,它提供了一个统一的编程模型,即不需要知道日志最终记录到哪里去,只需要调用它即可. 使用方法很简单,通过依赖注入ILogFactory(Creat ...
- asp.net core源码飘香:Options组件
简介: Options组件是一个小组件,但用的地方很多.它本质是将一个POCO类注册到容器中(主要在Startup中作为其他组件的配置功能提供),后续使用的时候就可以通过比如构造函数注入等获取到POC ...
- 12 哈希表相关类——Live555源码阅读(一)基本组件类
12 哈希表相关类--Live555源码阅读(一)基本组件类 这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 ...
- 游戏服务端引擎(kbengine完整代码+demo源码)
2019独角兽企业重金招聘Python工程师标准>>> Demo: Ogre. Demo: Unity3d. PyConsole: display server informatio ...
- 深入学习jquery源码之高德地图组件的使用
深入学习jquery源码之高德地图组件的使用 高德地图组件是一类高度模块化的LBS服务组件,开发者通过调用相应标签便可轻松实现诸如在地图上标注点.查找附近poi.公交/驾车线路规划等功能.该类组件仅针 ...
- 变频器源码、图纸、伺服驱动器和变频器源码、图纸、生产方案
变频器源码.图纸.生产方案 伺服驱动器和变频器源码.图纸.生产方案 此文件包涵盖 1.迈信EP100交流伺服驱动器C源码,PCB原理图 2.英威腾GD300变频器C源码,PCB原理图.生产方案 3.M ...
最新文章
- Financiers Game CodeForces - 737D (博弈论,区间dp)
- UVA 11626 凸包(含共线)
- Spring Cloud Netflix—如何加入Hystrix
- SAP保存操作记录CDHDR和CDPOS表
- CCF201503-1 图像旋转(100分)
- Python 数据分析三剑客之 Matplotlib(六):直方图 / 柱状图 / 条形图的绘制
- mysql or全表_mysql or条件可以使用索引而避免全表
- [贪心][模拟] Jzoj P5811 简单的填数
- 【答疑】对象存储OSS常见问题解答(SDK类2)
- 计算机硬件 系统安装维护教程 04系统安装-Win-02:使用Dism++对系统进行初始化前配置
- c语言中取反位运算的作用,C语言位运算符及作用与或异或取反左移和右移
- centos检测不到磁盘_CentOS 7 安装时候检测不到空余硬盘的解决办法
- 英特尔nuc做网站服务器,难以想象 英特尔把至强处理器塞进了NUC
- hibernate查询结果映射到实体和map的方法
- 计算机正确的录入指法教案,《文字录入教案》word版.doc
- 编译原理2---A Power Tool 正则表达式
- SVN设置忽略文件列表
- redis可以代替mysql 吗_redis是否可以代替mysql
- 安装软件时内存还有很多却依然提示空间不足的解决办法
- android dumpsys 分析,Android内存分析工具-dumpsys meminfo