一、背景刚过去的618,京东销量GMV超3000亿。(1)从用户在京东app、小程序、网页端下单、支付,到最终大屏上GMV和订单量实时累加,这中间究竟发生了什么呢?(2)如何才能做到,用户下单,大屏上能够实时统计呢?(3)从 ...
一、背景 刚过去的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实时数据大屏,从用户下单到最终大屏指标计算,呈现给用户。对当中整个流程进行了详细的阐述,以及在开发过程中遇到的问题也进行详细的描述。希望能给搭建大屏的读者提供一个思路。 |
2024-02-29
2024-01-22
2024-01-03
2023-12-27
2023-12-08
回答
回答
回答
回答
回答
0