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

     

  • 相关阅读:
    C#中Windows通用的回车转Tab方法
    对Form_Load事件的一点想法
    关于粉笔灰对教师影响的解决方案
    今天才发现MSSQLServer2000的排序功能原来这样
    C# 2.0与泛型
    (收藏)Anders Hejlsberg谈C#、Java和C++中的泛型
    对接口interface的一点想法
    马的遍历
    推荐软件:工作时间提醒器
    pgpoolII 介绍
  • 原文地址:https://www.cnblogs.com/losophy/p/9416954.html
Copyright © 2011-2022 走看看