实时计算-多级订单金额,及下级人数
1 系统概述
人物关系为代理模式,一级代理包含二级代理,二级代理包含三级代理。
需求为实时计算每个用户的订单金额,并取出金额的TOP100。
并实时计算当天下级人数。
1.1 指标使用方式
- 单用户订单列表查询:查询订单表,不限定日期。
- 当天订单额top100:查询指标表对金额排序取前100,限定日期当天。
- 当天下级人数:根据用户id查询级别表统计行数,限定日期为当天。
1.2 系统概述
系统离线和实时合二为一,实时只需限定日期为当天,即为实时数据;离线数据只需指定日期即可。
1.3 性能概述
- 计算引擎,Flink是纯流式架构,可保证数据的低延迟处理。
- 存储:此套系统采用HBase+Phoenix作为存储,适当设计好索引可将查询延迟控制在2秒以内,tps数量和RegionServer数量呈正相关,此套系统可满足当前需求。
2 系统目标
1.1 容错性
对于当天的实时报表,容错能力详见处理逻辑。
1.2 可扩展性
此系统增加hbase RegionServer服务器数量对代码无影响。
1.3 健壮性
此套系统配置,随着订单量增加,HBase可支持的数据量可达亿级别。若业务暴增,系统磁盘受限,tps到达瓶颈,可适当增加机器节点,同样对业务代码无影响。
1.4 吞吐量
月增订单量大概在500W,单日增量20万左右,此系统设计至少满足于1年需求,实际的吞吐量根据集群而定,按照我的设计,集群平均tps在2500左右,目前能满足该需求。
1.5 数据倾斜
为防止数据倾斜,建表是可对Phoenix进行加盐或者指定split key。
1.6 一致性
HBase为强一致性,所以不存在并发修改问题。
1.6 高可用性
HBase为集群,基于Hadoop的HDFS,可设置副本集为3,此系统为3台节点,允许宕机一台,若要求高可用级别很高,则需相应增加机器。
3 业务流程
4 系统总体设计
4.1 架构
4.2 表设计
用户表
- 主键:USERID,AGENTID
订单表
- 主键:ORDERID,ordertime
- 二级索引:USERID、shopid、status、totalFee
级别表
- 主键:USERID,PT
- 二级索引:childId
指标表
- 主键:userid,pt
- 二级索引:totalfee
5 系统功能设计
5.1 数据源
Kafka采用2.X版本,通过参数设置保证消息发送零丢失,但是本系统未涉及kafka相关。
5.2 计算引擎
5.2.1 消息零丢失
Flink checkpoint采用exactly once语义,保证消息只被消费一次,即使Flink意外宕机,也可从检查点恢复工作。
5.2.2 高可用性
Flink采用Standalone HA安装模式,可配置多个JobManager,保证Flink集群高可用性。
5.2.3 计算逻辑
- 用户数据计算逻辑,涉及指标:下级用户数
- 订单数据计算逻辑,设计指标:订单总金额
5.3 存储
HBase2.0.5采用HA安装,保证高可用,Phoenix5.0采用全局索引,保证读写的速率。
5.4 RESTful
接口使用Spring Boot 2.x编程。
6 硬件配置
HBase
- RegionServer:3台32核128G,
- Master:2台8核32G
Flink
- JobManager:与HBase Master共用机器
- executor:与HBase RegionServer共用机器
磁盘
- 每台机器挂载4*1T硬盘
带宽
- 至少1G带宽
转载于:https://www.cnblogs.com/ChouYarn/p/11283369.html
实时计算-多级订单金额,及下级人数相关推荐
- 【Flink】基于 Flink CEP 实时计算商品订单流失量
1.概述 转载:https://blog.csdn.net/tzs_1041218129/article/details/108786597 假设有个需求需要实时计算商品的订单流失量,规则如下: 用户 ...
- 实时数仓入门训练营:实时计算 Flink 版 SQL 实践
简介:<实时数仓入门训练营>由阿里云研究员王峰.阿里云高级产品专家刘一鸣等实时计算 Flink 版和 Hologres 的多名技术/产品一线专家齐上阵,合力搭建此次训练营的课程体系,精心打 ...
- 云原生大数据架构中实时计算维表和结果表的选型实践
简介: 随着互联网技术的日渐发展.数据规模的扩大与复杂的需求场景的产生,传统的大数据架构无法承载. 作者 | 志羽 来源 | 阿里技术公众号 一 前言 传统的大数据技术起源于 Google 三架马车 ...
- 【开通指南】 实时计算 Flink 全托管版本
简介: [开通指南]实时计算 Flink 全托管版本 1.试用的实时计算 Flink 版产品是后付费还是预付费?是否有额外费用产生? 预付费,有额外的SLB费用,一天2元封顶.(开通 Flink 全托 ...
- 点触科技:构建实时计算和数据仓库解决方案
公司介绍 厦门点触科技股份有限公司,新三板挂牌企业(股票代码:870702),成立于2013年,是一家以历史养成类游戏研发与发行为主,专业从事手机游戏的策划.研发制作.商业化运营的创新型发展公司.目前 ...
- 实时计算的最佳实践:基于表格存储和Blink的大数据实时计算
表格存储: 数据存储和数据消费All in one 表格存储(Table Store)是阿里云自研的NoSQL多模型数据库,提供PB级结构化数据存储.千万TPS以及毫秒级延迟的服务能力.在实时计算场景 ...
- 如何实时计算日累计逐单资金流
在股票交易市场,资金流是一个重要的量价指标.资金流指标按照是否对交易订单号进行合并计算,可以分为逐笔资金流和逐单资金流:按照统计时间,可以分为分钟资金流和日累计资金流.其中逐笔资金流的处理逻辑比较简单 ...
- 伍翀:大数据实时计算Flink SQL解密
[IT168 专稿]本文根据伍翀老师在2018年5月12日[第九届中国数据库技术大会]现场演讲内容整理而成. 讲师简介: 伍翀,阿里巴巴高级研发工程师,花名"云邪",阿里巴巴计算平 ...
- 伍翀 :大数据实时计算Flink SQL解密
[IT168 专稿]本文根据伍翀老师在2018年5月12日[第九届中国数据库技术大会]现场演讲内容整理而成. 讲师简介: 伍翀,阿里巴巴高级研发工程师,花名"云邪",阿里巴巴计算 ...
最新文章
- linux内核syscall_define6,Syscall系统调用Linux内核跟踪
- vue 循环 递归组件_Vue一个案例引发的递归组件的使用
- mysql怎么让一个存储过程定时执行
- 硬件安全系列 逻辑电路基础知识介绍(三)
- dart - 如何从Dart中的列表中找到最小值和最大值
- 北京/苏州内推 | 微软亚洲互联网工程院招聘算法工程师/应用科学家
- 《IBM-PC汇编语言程序设计》(第2版)【沈美明 温冬婵】——第八章——自编解析与答案
- Struts2与Spring集成中的自动装配策略
- 【Docker】在Docker中安装redis、rabbitmq
- 3级调度 fpga_Vivado HLS学习笔记——1.了解FPGA架构
- 【java】Java8 BiConsumer函数式接口
- MySQL-安全对调两个表名
- Chrome图标的来历。
- Zephyr在编译时将二进制文件转化成c语言数组
- vmstat记录linux状态日志到文本-随手记
- 南大计算机技术复试分数线,南大计算机复试分数线
- c语言文件中获取单词,从文本文件中读取单个单词并翻译 - C
- java时间显示时区_Java 时间、日期与时区的关系
- 网页截图怎么截一整张_如何对整个网页页面进行截图
- redis与ssm整合(mybatis二级缓存)单机版
热门文章
- AJAX设置光标离开自动提交,Ajax自动提交和刷新页面
- java动态工程_eclipse 创建maven 项目 动态web工程完整示例
- php arrayaccess 二维,PHP数组式访问接口ArrayAccess用法分析
- Java折叠_[Java教程]Jquery中菜单的展开和折叠
- vb6 串口同时读取写入数据怎么避免冲突_分布式场景下的数据复制究竟怎么做...
- java左手握右手_在队列中,向中看齐举哪个手?
- vSphere 7简介:混合云的功能和技术
- 微服务架构开发实战:如何实现微服务的自动扩展?
- 大咖博闻荟 | 基于NSX-T和AVI实现企业双活中心
- Mysql学习总结(53)——使用MySql开发的Java开发者规范