京东618实时数据大屏核心技术解密

本文涉及的产品
实时计算 Flink 版,1000CU*H 3个月
简介: 京东618实时数据大屏核心技术解密

一、背景

刚过去的618,京东销量GMV超3000亿。

(1)从用户在京东app、小程序、网页端下单、支付,到最终大屏上GMV和订单量实时累加,这中间究竟发生了什么呢?

(2)如何才能做到,用户下单,大屏上能够实时统计呢?

(3)从用户下单,到最终支付完成,后来又取消了这笔订单,大屏上GMV和订单量的总值如何做到既要保证极高的时效性,又要保证较高的准确性呢?


二、系统整体架构

(1)业务流程梳理:

用户在京东上购物,可能会经过以下几种流程,用户下单、支付订单、取消订单、订单拆单(由于商品在不同的仓库等原因)

(2)大屏整体系统架构

从线上mysql binlog、日志、MQ消息接入(线上数据),存储在JDQ、JMQ当中(数据存储层),通过实时计算组件Flink、Storm等进行实时计算,关联维表数据以及调用线上接口服务JSF进行维度信息关联(实时计算层),最后将计算指标存储在redis、mysql 中,或者将明细数据写入OLAP当中(数据指标层)。最后对外提供服务或者应用,包括:大屏、看板、销量榜单排行等等。

系统整体架构图参照下图:

(3)实际线上业务遇到的问题

a、数据倾斜、redis数据热点?

redis探针解决数据热点问题,对热点key进行hash

b、如果做到精确一次?

采用幂等来进行保证一次的。位运算节省数据存储空间

程序中提升几毫秒、节省几 kB 的内存有必要吗? - 知乎

c、Flink 背压、Flink 调优

增加并发度、优化程序代码、调整slot、避免频繁调线上JSF服务增加缓存

d、数据延迟(订单取消比订单下单先到达)

将所有消息进行存储JDHBase,进行关联,构造宽表,下游业务进行判断

HBase rowKey设计:订单号反转 订单号递增,减少region 写入压力,避免HBase 写入热点

e、高可用保障

主备集群,异地容灾

f、数据质量、数据准确性保障

数据质量告警配置、离线实时数据校验

g、大促压测

h、监控、告警

任务失败监控、消息挤压的监控

m、高时效性

Flink 低延迟计算引擎

(4)数据大屏可视化

阿里云(DataV)

网易有数(EasyScreen)

腾讯云(腾讯云图)

百度Sugar

京东城市莫奈可视化平台


三、总结

本文讲述了京东618实时数据大屏,从用户下单到最终大屏指标计算,呈现给用户。对当中整个流程进行了详细的阐述,以及在开发过程中遇到的问题也进行详细的描述。希望能给搭建大屏的读者提供一个思路。



相关实践学习
基于Hologres+Flink搭建GitHub实时数据大屏
通过使用Flink、Hologres构建实时数仓,并通过Hologres对接BI分析工具(以DataV为例),实现海量数据实时分析.
实时计算 Flink 实战课程
如何使用实时计算 Flink 搞定数据处理难题?实时计算 Flink 极客训练营产品、技术专家齐上阵,从开源 Flink功能介绍到实时计算 Flink 优势详解,现场实操,5天即可上手! 欢迎开通实时计算 Flink 版: https://cn.aliyun.com/product/bigdata/sc Flink Forward Asia 介绍: Flink Forward 是由 Apache 官方授权,Apache Flink Community China 支持的会议,通过参会不仅可以了解到 Flink 社区的最新动态和发展计划,还可以了解到国内外一线大厂围绕 Flink 生态的生产实践经验,是 Flink 开发者和使用者不可错过的盛会。 去年经过品牌升级后的 Flink Forward Asia 吸引了超过2000人线下参与,一举成为国内最大的 Apache 顶级项目会议。结合2020年的特殊情况,Flink Forward Asia 2020 将在12月26日以线上峰会的形式与大家见面。
相关文章
|
编解码 NoSQL 测试技术
性能工具之Jmeter HLS 插件(入门篇)
【2月更文挑战第28天】JMeter Redis 数据集 vs CSV 数据集性能对比
386 1
性能工具之Jmeter HLS 插件(入门篇)
|
消息中间件 存储 SQL
跨系统数据一致性方案的思考(上)
本文主要意在总结沉淀现有问题解决经验过程,整理解决跨系统数据不一致问题的经验方法。 跨系统数据一致性,比较优秀的解决方案就是微服务化,不同应用系统采用统一数据源方式,这样可以有效避免数据一致性问题。 但是我们很多系统由于历史原因或者业务缘由,导致非服务化情况下,又要采取数据一致性方案。
跨系统数据一致性方案的思考(上)
|
4月前
|
消息中间件 监控 Docker
Docker环境下快速部署RabbitMQ教程。
至此,这次神秘而简明的部署之旅告一段落。祝你在利用RabbitMQ打造消息队列时,一切顺风顺水!
206 8
|
程序员 开发工具 git
HUAWEI DevEco Studio 编辑器 高效率技巧大全
HUAWEI DevEco Studio 编辑器 高效率技巧大全
265 0
|
SQL JSON 关系型数据库
SqlAlchemy 2.0 中文文档(五)(5)
SqlAlchemy 2.0 中文文档(五)
202 4
|
存储 API C语言
C/C++爱心代码
C/C++爱心代码
3384 2
|
人工智能 分布式计算 算法
人工智能的蚁群算法介绍
人工智能的蚁群算法介绍
|
Windows
Windows11 安装IIS的步骤
Windows11 安装IIS的步骤
1397 0
|
关系型数据库 MySQL 测试技术
禅道安装到Apache服务器详细流程(亲测可用)
禅道安装到Apache服务器详细流程(亲测可用)
346 0
|
Android开发
你要了解的USB接口知识总结
最近项目中有设计到USB接口,把一些常用的USB名词、常识以及关系总结一下。
1071 0