2016双十一大屏


作者:京东物流团队 张强

核心报表——供应链大屏,作为物流管理的中枢,为管理者在促销时期提供决策支持。这份报表承载了超过170项指标,依赖于30多个接口,其复杂性及数据链路之长,加上稳定性要求之高,无疑是一大挑战。

本文的重点在于分享如何确保双11期间供应链大屏的稳定性。首要步骤就是绘制全链路流程图,梳理出概览图后,深入到每一个细节中寻找问题,并因地制宜地制定保障策略。

以下是供应链大屏加工的全流程图,图中清晰标注了各个风险点的保障方案。

全链路流程中,我们遵循从左至右、从上至下的思路,逐一分析各节点的薄弱环节。大屏加工过程分为数据接入层、指标加工层、指标存储层和指标服务层。

各模块的保障风险点包括:

1. 加工链路长,涉及多层任务与数据任务;

2. 依赖方众多,如大件、服务、逆向、B2B等团队;

3. 接入类型多样,包括离线Hive、jsf接口、http接口等;

4. 指标存在多种维度,计算有先后顺序;

5. 外部依赖无法保证100%的稳定性,需具备重算功能及容错性;

6. 业务促销策略需要灵活调整;

7. 多业务互相影响,需快速定位指标异常;

8. 需确保接口稳定性及可降级性。

为了确保大屏的稳定性和数据的准确性,我们采取以下策略:

1. 确定全链路的责任边界,按照责任方拆分大屏为不同区域;

2. 要求各依赖方及接口做到高可用性;

3. 实施监控前置策略,将SCM研发加入到各个环节中,以便提前感知上游异常;

4. 对所有依赖接口进行梳理,与各依赖方确定服务级别协议(SLA);

5. 根据不同类型接口制定相应措施,如监控、重试、降级和兜底策略。

在数据加工方面,我们采取重算功能、容错性及快速恢复方案,以确保数据准确性。我们抽象业务策略,通过DUCC进行灵活配置调整。指标缓存使用redis,接口进行压测,并实施链路双流策略。

在数据库层面,我们采用一主三从的方式划分业务Mysql,分为主库、大屏查询、核心看板查询和其他报表。我们还使用Doris等存储方案进行数据存储和同步。

在预警和监控方面,我们增加SCM研发参与报警和监控,建立实时任务的JDQ层级列表,以便快速定位积压点。我们使用烽火台等工具监控数据写入和依赖数据的完备性。

“结果第一”是我们保障大屏的指导方向。我们不仅关注自己的系统,还从整个流程中寻找方法、找薄弱点,确保大屏的稳定性和数据的准确性。双十一大屏的稳定与准确不是一个人的功劳,而是团队内每个人的齐心协力和上下游同事共同协作支持的结果。我深知团队的力量是无穷的,这也是我认为我们团队能做好大屏保障的根本原因。