InfoQ 编辑部出品——2021年度技术盘点与展望 了解详情
写点什么

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

  • 2021 年 6 月 30 日
  • 本文字数:898 字

    阅读完需:约 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、如果做到精确一次?

采用幂等来进行保证一次的。

c、Flink 背压、Flink 调优

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

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

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

e、高可用保障

主备集群,异地容灾

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

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

g、大促压测

h、监控、告警

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

m、高时效性

Flink 低延迟计算引擎

(4)数据大屏可视化

目前现有的数据可视化大屏解决方案有:阿里云(DataV)、网易有数(EasyScreen)、腾讯云(腾讯云图)、百度 Sugar、京东城市莫奈可视化平台


三、总结

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


作者简介

诸葛子房,曾供职于京东,现就职于 BAT,在大数据领域有多年实践经验,欢迎加微信:zhugezifang001 交流

2021 年 6 月 30 日 17:073634

评论 2 条评论

发布
暂无评论
发现更多内容

Spring Boot工程结构

韩斌

Spring Boot

垃圾代码和优质代码的区别?

xcbeyond

Java 优化代码 3月日更

二十张图让你一分钟全面学习数仓建设之路

初学大数据

大数据 数据仓库

redis工作原理(下)

Sakura

28天写作 3月日更 21天挑战

翻云覆雨——前景理论之隔离效应

Justin

心理学 28天写作 游戏设计

Webpack 基石 tapable 揭秘

vivo互联网技术

大前端 webpack 流程管理 tapable

Markdown中的图标为什么不是图片却可以以图片方式显示

happlyfox

28天写作 3月日更

Python 关键字

HoneyMoose

Elasticsearch 定制 Dynamic Mapping 策略

escray

elastic 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 3月日更

《精通比特币》学习笔记(第六章)

棉花糖

区块链 学习 3月日更

DDR4看这一篇就够了

Kevin Z

算法攻关 - 重建二叉树 (O(n))_0105

小诚信驿站

刘晓成 小诚信驿站 28天写作 算法攻关 重建二叉树

RPA助力证券行业高质量发展

Jason Tien

微服务 RPA 金融科技 证券 自动化平台

正则表达式.05 - 匹配模式

insight

正则表达式 3月日更

熬夜重构了IDEA插件Toolkit(整合程序员常用的工具箱),更加便捷

Silently9527

Java 程序员 idea插件

一个PHPer的Golang之路

万俊峰Kevin

php 微服务 Go 语言

CloudQuery v1.3.4 版本更新

CloudQuery社区

oracle 运维 编辑器 sql 数据库管理工具

成为你向往的那只独角兽 - 《独角兽项目》出版在即

京东科技开发者

DevOps

RabbitMQ集群简介

Kylin

读书笔记 RabbitMQ 消息队列 3月日更 集群简介

B端产品经理自我认知

lenka

3月日更

密码学系列之:内容嗅探

程序那些事

加密解密 密码学 程序那些事 内容嗅探

调整好心态

Nydia

第9周课后练习-性能优化三

潘涛

架构师训练营 4 期

容器 & 服务:Kubernetes构件及Deployment操作

程序员架构进阶

Docker Kubernetes 容器 28天写作 3月日更

微服务想用好,得把分布式和微服务之间的关系搞清楚

守护石

分布式 微服务 SpringCloud 分布式架构

(28DW-S8-Day18) 可插拔式知识

mtfelix

28天写作

手写的第一个 Java 应用程序,执行的时候发生了什么?

白色蜗牛

Java

常见 git 需求整理(持续更新中)

blueju

git 大前端 工具 npm

Vue源码学习 | 4个实用的javascript技巧

devpoint

Vue vuejs stringify

波场环球系统开发|波场环球软件APP开发

系统开发

2021最新腾讯面经分享:Java面试核心点/技术笔记/学习视频(春招必备)

比伯

Java 编程 程序员 架构 面试

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