zoukankan      html  css  js  c++  java
  • KBEngine源码:组件方案

    相对于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引擎概览

     

  • 相关阅读:
    自定义input标签输入框
    sys.argv 启动时可以传入变量
    falcon 监控
    wrk 压测工具
    mysql UPDATE和REPLACE
    tesseract识别图片中文字
    centos 查看日志 & 查找文件、目录、内容 & centos查看磁盘使用情况
    压力测试
    tensorflow + scikit-learn
    Pycharm快捷键配置
  • 原文地址:https://www.cnblogs.com/losophy/p/9416954.html
Copyright © 2011-2022 走看看