写点什么

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

  • 2021-06-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-06-30 17:075306

评论 2 条评论

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

面试突击75:SpringBoot 有几种读取配置文件的方法?

王磊

Java 常见面试题

【云原生】SpringCloud Alibaba 之 Nacos注册中心实战

Bug终结者

Java 分布式 SpringCloud 8月月更

a豆14 Pro高性能高颜笔记本,新潮配色助力打造a豆AIoT智能生态圈

科技热闻

元宇宙系统源码——测试方案

开源直播系统源码

软件测试 软件开发 元宇宙

RPC与REST对比指南

阿泽🧸

Rest 8月月更

RocketMQ高可用设计之消息发送重试

急需上岸的小谢

8月月更

Web3 结算协议 Zebec Protocol 的商业模式与发展前景一览

鳄鱼视界

[极致用户体验] 用户体验好的 Button,在手机上不应该有 Hover 态

HullQin

CSS JavaScript html 前端 8月月更

干货|语义网、Web3.0、Web3、元宇宙这些概念还傻傻分不清楚?(下)

Orillusion

WebGL 元宇宙 Metaverse webgpu #开源

CAT认证敏捷团队教练工作坊 (Coaching Agile Teams) | 9月24日开课

ShineScrum

敏捷教练 专业教练 团队教练 GROW Model

文件管理-Linux系统VIM编辑

Albert Edison

Linux centos 运维 vim教程 8月月更

【Java】:你知道字符串的格式化输出吗?

翼同学

Java 前端 编程语言 8月月更

Web3 结算协议 Zebec Protocol 的商业模式与发展前景一览

BlockChain先知

App切换到后台后如何保持持续定位?

HarmonyOS SDK

开源一夏 | 使用 Three.js 实现"雪糕"地球,让地球也凉爽一夏

战场小包

JavaScript 开源 前端 3D ThreeJS

再见MybatisPlus,阿里推出新ORM框架!

TimeFriends

8月月更

C++继承中的同名成员处理方式与同名静态成员处理方式

CtrlX

c c++ 面向对象 代码 8月月更

春意盎然,适合“二叉树剪枝”

掘金安东尼

算法 前端 8月月更

STM32入门开发:编写XPT2046电阻触摸屏驱动(模拟SPI)

DS小龙哥

8月月更

Redis分布式锁-觉悟吧,红锁!

知识浅谈

redis分布式锁 8月月更

开源一夏|聆听信通院何所长开源生态发展的所记所思

穿过生命散发芬芳

开源 8月月更 SUSECON

小菜鸟河北联通上岗培训随笔二

乌龟哥哥

8月月更

不是吧,还有人不知道三目运算符的BUG

自然

基础 8月日更 8月月更

每日一R「08」类型系统(二)

Samson

8月月更 ​Rust

docker下,极速搭建spark集群(含hdfs集群)

程序员欣宸

spark 8月月更

加码企业服务,阿里云发布计算巢加速器

阿里云弹性计算

PaaS 企业服务 计算巢 ISV

leetcode 128. Longest Consecutive Sequence 最长连续序列(中等)

okokabcd

LeetCode 数据结构与算法

Web3 结算协议 Zebec Protocol 的商业模式与发展前景一览

股市老人

Java基础之Java枚举

自然

Java core 8月月更

Java基础知识(一些需要注意的点)

自然

基础 8月月更

京东618实时数据大屏核心技术解密_服务革新_诸葛子房_InfoQ精选文章