架构设计 - 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《分布式服务架构 原理、设计与实战》综合
这书以分布式微服务系统为主线,讲解了微服务架构设计.分布式一致性.性能优化等内容,并介绍了与微服务系统紧密联系的日志系统.全局调用链.容器化等. 还是一样,每一章摘抄一些自己觉得有用的内容,归纳整理, ...
随机推荐
- Android开发--Android Studio配置
1.常见问题 emulator: You might want to adjust your AVD RAM size and/or HAXM configuration to run in fast ...
- sql数据库表被锁,无法查询
查看被锁表: select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName ...
- udev
1.作为devfs的代替者,传统的devfs不能动态分配major和minor且有限,udev能像DHCP动态的分配IP一样去分配major和minor 2.device naming提供命名持久化机 ...
- JAVA字符串的相关练习
/*String s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";//生成随机验证码 fo ...
- Sql 获取向上取整、向下取整、四舍五入取整的实例
[四舍五入取整截取] select round(54.56,0) [向下取整截取] SELECT FLOOR(54.56) [向上取整截取] SELECT CEILING(13.15) --MS ...
- 利用WPS 2012/2013 0day针对中国政府部门的定向攻击
今天早上,我们捕获到一个利用wps 2012/2013 0day针对中国政府部门的钓鱼邮件定向攻击事件. 邮件发件人以2014中国经济形势解析高层报告组委会 标题发出,附件为包含wps2012 0da ...
- page object
http://www.51testing.com/html/76/316176-849962.html
- ROS机器人语音交互(一)
语音交互早期已经广泛应用在手机端,电脑端,随着技术的成熟,接口逐渐开放,ROS上老外搞的开源语音识别只支持英文,识别率还低. 国内语音识别技术已经相当成熟稳定.感谢ros小课堂的讲解,解决了自己的疑惑 ...
- keep the bar green to keep the code clean——Junit详解(一)
测试用例 单元测试时每个开发人员必需掌握的,是保证开发过程中代码的准确性,无误性,保证代码质量.敏捷开发模式是先根据用户需求写测试用例,考虑基本所有用户所需要的情况,再写实现方法.单元测试有很多种,当 ...
- 《Pro Express.js》学习笔记——Express服务启动常规七步
Express服务启动常规七步 1. 引用模块 var express=require('express'), compression=require('compression'), bo ...