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

实时计算-多级订单金额,及下级人数相关推荐

  1. 【Flink】基于 Flink CEP 实时计算商品订单流失量

    1.概述 转载:https://blog.csdn.net/tzs_1041218129/article/details/108786597 假设有个需求需要实时计算商品的订单流失量,规则如下: 用户 ...

  2. 实时数仓入门训练营:实时计算 Flink 版 SQL 实践

    简介:<实时数仓入门训练营>由阿里云研究员王峰.阿里云高级产品专家刘一鸣等实时计算 Flink 版和 Hologres 的多名技术/产品一线专家齐上阵,合力搭建此次训练营的课程体系,精心打 ...

  3. 云原生大数据架构中实时计算维表和结果表的选型实践

    简介: 随着互联网技术的日渐发展.数据规模的扩大与复杂的需求场景的产生,传统的大数据架构无法承载. 作者 | 志羽 来源 | 阿里技术公众号 一 前言 传统的大数据技术起源于 Google 三架马车 ...

  4. 【开通指南】 实时计算 Flink 全托管版本

    简介: [开通指南]实时计算 Flink 全托管版本 1.试用的实时计算 Flink 版产品是后付费还是预付费?是否有额外费用产生? 预付费,有额外的SLB费用,一天2元封顶.(开通 Flink 全托 ...

  5. 点触科技:构建实时计算和数据仓库解决方案

    公司介绍 厦门点触科技股份有限公司,新三板挂牌企业(股票代码:870702),成立于2013年,是一家以历史养成类游戏研发与发行为主,专业从事手机游戏的策划.研发制作.商业化运营的创新型发展公司.目前 ...

  6. 实时计算的最佳实践:基于表格存储和Blink的大数据实时计算

    表格存储: 数据存储和数据消费All in one 表格存储(Table Store)是阿里云自研的NoSQL多模型数据库,提供PB级结构化数据存储.千万TPS以及毫秒级延迟的服务能力.在实时计算场景 ...

  7. 如何实时计算日累计逐单资金流

    在股票交易市场,资金流是一个重要的量价指标.资金流指标按照是否对交易订单号进行合并计算,可以分为逐笔资金流和逐单资金流:按照统计时间,可以分为分钟资金流和日累计资金流.其中逐笔资金流的处理逻辑比较简单 ...

  8. 伍翀:大数据实时计算Flink SQL解密

    [IT168 专稿]本文根据伍翀老师在2018年5月12日[第九届中国数据库技术大会]现场演讲内容整理而成. 讲师简介: 伍翀,阿里巴巴高级研发工程师,花名"云邪",阿里巴巴计算平 ...

  9. 伍翀 :大数据实时计算Flink SQL解密

    [IT168 专稿]本文根据伍翀老师在2018年5月12日[第九届中国数据库技术大会]现场演讲内容整理而成. 讲师简介:  伍翀,阿里巴巴高级研发工程师,花名"云邪",阿里巴巴计算 ...

最新文章

  1. linux内核syscall_define6,Syscall系统调用Linux内核跟踪
  2. vue 循环 递归组件_Vue一个案例引发的递归组件的使用
  3. mysql怎么让一个存储过程定时执行
  4. 硬件安全系列 逻辑电路基础知识介绍(三)
  5. dart - 如何从Dart中的列表中找到最小值和最大值
  6. 北京/苏州内推 | 微软亚洲互联网工程院招聘算法工程师/应用科学家
  7. 《IBM-PC汇编语言程序设计》(第2版)【沈美明 温冬婵】——第八章——自编解析与答案
  8. Struts2与Spring集成中的自动装配策略
  9. 【Docker】在Docker中安装redis、rabbitmq
  10. 3级调度 fpga_Vivado HLS学习笔记——1.了解FPGA架构
  11. 【java】Java8 BiConsumer函数式接口
  12. MySQL-安全对调两个表名
  13. Chrome图标的来历。
  14. Zephyr在编译时将二进制文件转化成c语言数组
  15. vmstat记录linux状态日志到文本-随手记
  16. 南大计算机技术复试分数线,南大计算机复试分数线
  17. c语言文件中获取单词,从文本文件中读取单个单词并翻译 - C
  18. java时间显示时区_Java 时间、日期与时区的关系
  19. 网页截图怎么截一整张_如何对整个网页页面进行截图
  20. redis与ssm整合(mybatis二级缓存)单机版

热门文章

  1. AJAX设置光标离开自动提交,Ajax自动提交和刷新页面
  2. java动态工程_eclipse 创建maven 项目 动态web工程完整示例
  3. php arrayaccess 二维,PHP数组式访问接口ArrayAccess用法分析
  4. Java折叠_[Java教程]Jquery中菜单的展开和折叠
  5. vb6 串口同时读取写入数据怎么避免冲突_分布式场景下的数据复制究竟怎么做...
  6. java左手握右手_在队列中,向中看齐举哪个手?
  7. vSphere 7简介:混合云的功能和技术
  8. 微服务架构开发实战:如何实现微服务的自动扩展?
  9. 大咖博闻荟 | 基于NSX-T和AVI实现企业双活中心
  10. Mysql学习总结(53)——使用MySql开发的Java开发者规范