zoukankan      html  css  js  c++  java
  • 架构设计

    DMServer Framework 

    主要属性:

    1. 四个模块部署在不同服务器,双层部分考虑主备和分布式部署。
    2. 架构可依据具体前端需求进行裁剪,灵活配置。
    3. gate用于业务框架分布式部署,在业务量可控范围可取消,做集中控制。
    4. 所有除gate服务均挂载在MQ上,需要做集群的服务以MQ队列名称做为集群名称,一个集群提供一个MQ队列,无集群默认提供一个MQ队列。集群上的节点以竞争方式消费队列数据。
    5. app只开放gateproxygate以短连接形式获取proxy地址,proxy为长连接。
    6. Maintain需要具备自动监控维护和主动维护两个功能,并开放web界面。

     

    Message protocol

    所有通信均采用此消息协议头,基于tcp上层封装,通信分以下四种:

    1. App  to  server   request  /  response 数据请求
    2. Server  to  app   request 消息推送与心跳
    3. Server  to  server  response 数据转发
    4. Server  to  server  request  /  response 数据请求

    协议参数:

    1. Message id  消息id,根据时间戳生成,保证唯一性(MAC + IMEI + + + +
    2. User id  用户id,注册时分配用户唯一id标示用户
    3. Msg cmd  消息命令码,server通过配置文件划分命令区域,由于前段屏蔽业务服务器,proxy通过命令码进行映射寻址
    4. Body length  消息体长度,server依据length接收数据及,分配数据内存
    5. From  消息源地址,server在配置文件中定义各个服务器及app标示id
    6. To  消息目的地址
    7. Cluster id /node id   集群id,节点id,可选参数,第一次登陆依据负载分配clusternode并存入redis,无此参数以redis数据为默认参数
    8. Wait time  响应等待时间,可选参数,不填取默认等待时间
    9. Flag  标示消息类型
    10. Reserve  保留,此数据位结束后紧跟消息体,消息体采用protobuf进行数据编解码压缩,加密数据在压缩基础上加密

    Database Framework

     

    数据库属性:

    1. 数据库分redisMySQL,两个数据库数据关系为mysql部分热数据刷新到redis
    2. Redis不做备份,但必须做主从
    3. 写数据使用MySQL,读数据使用Redis,做读写分离,读Redis失败再从MySQL获取
    4. MySQL需要做热备
    5. 单独起进程进行数据库维护,依据log_bin进行redis同步,执行对应脚本进行对应表管道同步或直接执行两次写操作
  • 相关阅读:
    "废物利用"也抄袭——“完全”DIY"绘图仪"<三、上位机程序设计>
    "废物利用"也抄袭——“完全”DIY"绘图仪"<二、下位机程序设计>
    "废物利用"也抄袭——“完全”DIY"绘图仪"<一、准备工作>
    我还活着,我回来了
    链表的基础操作专题小归纳
    文件的基础操作专题小归纳
    正整数序列 Help the needed for Dexter ,UVa 11384
    偶数矩阵 Even Parity,UVa 11464
    洛谷-跑步-NOI导刊2010提高
    洛谷-关押罪犯-NOIP2010提高组复赛
  • 原文地址:https://www.cnblogs.com/binchen-china/p/5813618.html
Copyright © 2011-2022 走看看