• KBEngine:记录


    Q:CBEngine使用什么网络协议?
    A:集群组建使用UDP协议,其他情况下服务器模块之间、服务器和客户端之间用的都是TCP协议。

    Q:CBEngine使用什么网络模型?
    A:由于正式运营环境在Linux下,所以网络模型选择了epoll, 生产环境在Windows比较方便所以CBEngine也支持了Windows系统,但是网络模型只是简单的select。

    Q:CBE是多线程的吗?可否部署在多台物理机上?
    A:CBE采用的是单线程(当然db读写等特殊任务依然会另开临时线程处理)多进程结构,不同的进程可以部署在不同的物理机上。理论上通过扩展机器数量和配置就可以扩展负载规模。

    Q:CBEngine使用的Python是什么版本的,是否需要自己安装?
    A:目前CBEngine自带Python3.4运行环境,并不需要用户另行安装Python。当然如须运行installer和cluster_controller这样一些安装和控制脚本则已然需要单独安装Python。


    Q:CBEngine的数据流采用的是什么格式?是否支持protobuf等第三方通用数据传输格式?
    A:CBEngine采用的是自己序列化的二进制流,不支持protobuf等其他数据传输格式,而且因为这部分功能和引擎其他部分结合较为紧密,不建议用户自行替换。


    Switch Fabric:交换机网络,根据网络环境的不同而不同,根据用户自己的情况进行配置,不属于引擎范畴。

    运作流程:
    1:Client接入我们提供的SDK或API,通过API连接Loginapp。
    2:Loginapp处理账号登录的验证,其中数据会从DBMgr中请求获取。(如果挂接了Interfaces, 则可以通过Interfaces将登陆和注册请求转发到第三方服务,并且接收第三方服务的处理结果让引擎执行后续流程 )
    3:如果登录验证通过,Loginapp会从BaseappMgr拿到最低负载的Baseapp,并通知Client该Baseapp的连接ip和端口。
    4:Client通过API连接该Baseapp,并在Baseapp上生成Proxy代理对象与Client关联(默认的,会使用Account实体与之关联)。
    5:根据业务的情况,需要创建一个Space空间内的实体时,如果目标空间不存在,则会向CellappMgr请求一个低负载的Cellapp,并在其上创建该空间。
    6:在目标空间上创建Proxy对象(它是一个Entity的子类)的cell部分,使得该Proxy有了base部分以及对应空间内的cell部分。
    7:通过Proxy,传递和接收Client、Baseapp上base部分、Cellapp上cell的信息,完成通讯过程。

    Account实体是Client接入Baseapp时,第一个生成的实体,相当于账户实体。
    其他涉及到的概念会在本文后面进行阐述。

  • 相关阅读:
    centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课
    基于HTML5 WebGL实现 json工控风机叶轮旋转
    基于HTML5的WebGL实现的2D3D迷宫小游戏
    基于HTML5和WebGL的碰撞测试
    基于HTML5和WebGL的3D网络拓扑结构图
    基于 HTML5 WebGL 的 3D 网络拓扑图
    基于HTML5 Canvas 实现弹出框
    基于HTML5 Canvas实现用户交互
    基于HTML5快速搭建TP-LINK电信拓扑设备面板
    HTML5 技术在风电、光伏等新能源领域的应用
  • 原文地址:https://www.cnblogs.com/losophy/p/9678328.html
Copyright © 2020-2023  润新知