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

Message protocol

所有通信均采用此消息协议头,基于tcp上层封装,通信分以下四种:
- App to server request / response 数据请求
- Server to app 无request 消息推送与心跳
- Server to server 无response 数据转发
- Server to server request / response 数据请求
协议参数:
- Message id 消息id,根据时间戳生成,保证唯一性(MAC + IMEI + 时 + 分 + 秒 +)
- User id 用户id,注册时分配用户唯一id标示用户
- Msg cmd 消息命令码,server通过配置文件划分命令区域,由于前段屏蔽业务服务器,proxy通过命令码进行映射寻址
- Body length 消息体长度,server依据length接收数据及,分配数据内存
- From 消息源地址,server在配置文件中定义各个服务器及app标示id
- To 消息目的地址
- Cluster id /node id 集群id,节点id,可选参数,第一次登陆依据负载分配cluster及node并存入redis,无此参数以redis数据为默认参数
- Wait time 响应等待时间,可选参数,不填取默认等待时间
- Flag 标示消息类型
- Reserve 保留,此数据位结束后紧跟消息体,消息体采用protobuf进行数据编解码压缩,加密数据在压缩基础上加密
Database Framework

数据库属性:
- 数据库分redis及MySQL,两个数据库数据关系为mysql部分热数据刷新到redis
- Redis不做备份,但必须做主从
- 写数据使用MySQL,读数据使用Redis,做读写分离,读Redis失败再从MySQL获取
- MySQL需要做热备
- 单独起进程进行数据库维护,依据log_bin进行redis同步,执行对应脚本进行对应表管道同步或直接执行两次写操作
架构设计 - Server设计草稿的更多相关文章
- Eureka Server设计(转载 石杉的架构笔记)
目录: 一.问题起源 二.Eureka Server设计精妙的注册表存储结构 三.Eureka Server端优秀的多级缓存机制 四.总结 一.问题起源 Spring Cloud架构体系中,Eurek ...
- 专訪阿里陶辉:大规模分布式系统、高性能server设计经验分享
http://www.csdn.net/article/2014-06-27/2820432 摘要:先后就职于在国内知名的互联网公司,眼下在阿里云弹性计算部门做架构设计与核心模块代码的编写,主要负责云 ...
- grafana 的主体架构是如何设计的?
grafana 的主体架构是如何设计的? grafana 是非常强大的可视化项目,它最早从 kibana 生成出来,渐渐也已经形成了自己的生态了.研究完 grafana 生态之后,只有一句话:可视化 ...
- 理解RESTful架构——Restful API设计指南
理解RESTful架构 Restful API设计指南 理解RESTful架构 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件"采用客户端/服务器模式 ...
- 认证鉴权与API权限控制在微服务架构中的设计与实现(四)
引言: 本文系<认证鉴权与API权限控制在微服务架构中的设计与实现>系列的完结篇,前面三篇已经将认证鉴权与API权限控制的流程和主要细节讲解完.本文比较长,对这个系列进行收尾,主要内容包括 ...
- atitit.系统架构图 的设计 与工具 attilax总结
atitit.系统架构图 的设计 与工具 attilax总结 1. 架构图的4个版式(标准,(左右)悬挂1 2. 架构图的层次结构(下属,同事,助手)1 3. wps ppt1 4. 使用EDraw画 ...
- Java生鲜电商平台-App系统架构开发与设计
Java生鲜电商平台-App系统架构开发与设计 说明:阅读此文,你可以学习到以下的技术分享 1.Java生鲜电商平台-App架构设计经验谈:接口的设计2.Java生鲜电商平台-App架构设计经验谈:技 ...
- Java生鲜电商平台-商品基础业务架构设计-商品设计
Java生鲜电商平台-商品基础业务架构设计-商品设计 在生鲜电商的商品中心,在电子商务公司一般是后台管理商品的地方.在前端而言,是商家为了展示商品信息给用户的地方,它是承担了商品的数据,订单,营销活动 ...
- zz《分布式服务架构 原理、设计与实战》综合
这书以分布式微服务系统为主线,讲解了微服务架构设计.分布式一致性.性能优化等内容,并介绍了与微服务系统紧密联系的日志系统.全局调用链.容器化等. 还是一样,每一章摘抄一些自己觉得有用的内容,归纳整理, ...
随机推荐
- Web自动化基础(一)使用Selenium定位元素
什么是元素?我们知道网页上有什么内容显示出来,比如一个按钮,一个输入框,一张图片,都可以理解成元素,这些元素是由html代码构成的,比如图片可以用<img>标签来展示,一个输入框可以用&l ...
- CentOS_7.2安装PHP_5.6
一.安装依赖包和开发工具: yum install vim vim-enhanced wget zip unzip telnet ntsysv compat* apr* nasm* gcc gcc* ...
- idea初使用之配置使用maven仓库
idea使用的理由已经无需多说.现在已经超过了eclipse.java开发种占有44%.第一次使用上手还是挺难的.跟用惯了myeclipse的我来说.对于project的概念深入人心.还理解不了它的M ...
- hdoj 1576
//1Y真是爽啊 题意:要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1). 分析:根据题意a=b*x a=m ...
- MySQL5.5绿色版1067
mysql的绿色安装版,按照很多文章进行配置,会出现 配置文件里面添加了 [client] default-character-set=utf8 [mysqld] default-character- ...
- qt 单文档程序关闭时在delete ui处出现segmentation fault
做了个显示图片的单文档程序. qt 单文档程序关闭时在delete ui处出现segmentation fault. 调试发现调用两次mainwindow析构函数. http://blog.csdn. ...
- powershell读写磁盘变量(对象序列化)
---[第一章,开篇引子]--- 很久很久以前,我在网上闲逛,看到一头powershell菜鸟,写了一篇感慨道“挖哈哈,我学会powershell啦,我以前很笨,各种不懂,还想把变量保存起来.” 实际 ...
- Makefile 一点一滴(二)—— 输出文件到指定路径
先来看最简单的 makefile 文件: TestCpp : TestCpp.o g++ -o TestCpp TestCpp.o TestCpp.o : TestCpp.cpp g++ -c Tes ...
- TortoiseSVN文件夹及文件图标不显示解决方法
由于自己的电脑是win7(64位)的,系统安装TortoiseSVN之后,其他的功能都能正常的使用,但是就是文件夹或文件夹的左下角就是不显示图标,这个问题前一段时间就遇到了(那个时 ...
- run VLC in root
sed -i 's/geteuid/getppid/' /usr/bin/vlc