京东物流仓储数据分发平台架构实践及挑战 江龙飞

QCon大会

2019/06/25 发布于 技术 分类

QCon  QCon2019 

文字内容
1. 京东物流仓储数据分发平台架构实践及挑战 江龙飞 京东物流-资深架构师
3. 自我介绍 江龙飞 十年以上互联网、金融、军工行业的研发、架构 经验,丰富的分布式高并发系统架构设计经验,擅长 系统架构设计、技术中间件研发、数据库优化、UI组 件封装、idea插件开发等。在代码生成、高效编码方 面有很多实战经验。拥有八篇技术类国家发明专利。 目前负责基础技术中间件的研发和架构设计工作。
4. 目录 01 平台介绍 02 架构演进过程 03 平台技术挑战 04 未来技术展望
5. 平台介绍 数据分发平台(DTC) 数据分发平台作为仓储大动脉,是仓储系统之上的数据网 关,是连接仓储系统和京东商城平台、物流开放平台、京 东云仓平台的纽带。是整个仓储系统中最为关键的一环。 负责订单、商品、商家等数千种业务数据的下发以及仓储各生产环节的状态回传,涉及全球550+个仓储中心。主要 功能包括平滑仓库接收数据;避免高峰流量对仓储系统的冲击;对不同的API进行协议转换;仓储系统的数据路由。
6. 平台介绍-特点 仓储中心数量多 全球仓储中心数量达到550+ 业务类型多 支持仓储作业上千种业务类型下传 和回传 网络环境复杂 大多数为园区化部署,各园区网络 情况复杂多变 仓储中心分布广 仓储中心分布在全球各地 请求数据量大 业务请求日均调用量数达到百亿级 实时性要求高 业务数据分发实时性要求高
7. 平台介绍-协议 JSF协议 RESTFUL协议 JMQ协议 SOAP协议 HTTP协议 FTP协议
8. 01 平台介绍 目录 02 架构演进过程 03 平台技术挑战 04 未来技术展望
9. 平台演进过程 智能分布式模式 传统分布式模式 单应用模式 原始模式 仓储中心数量少,上游系统 直接配置仓储中心数据库操 作。 为提高系统吞吐量,引入消 息机制和缓存机制,同时将 应用按职责进行拆分、做到 对外提供WebService服务,同 高扩展性。 时调用下游仓储中心各协议类 型服务 。 为提高系统容错机制、引入 业务日志、异常业务数据监 控、异常报警等功能。
10. 架构演进过程-原始模式 缺点 京东商城平台 上游平台 配置数据源 仓储平台 仓储中心一 仓储中心二 • 对仓储平台依赖重 • 数据安全性弱 • 数据结构调整影响上游平台
11. 架构演进过程-单应用模式 改进后 • 业务上游 上游平台 京东商城平台 物流开放平台 京东云仓平台 搭建数据分发平台,上游平 台依赖于平台提供的服务 • 上下游平台之间解耦 数据分发平台 接收服务 接收模块 路由模块 分发模块 缺点 • 仓储系统 仓储中心一 仓储中心二 仓储中心..N 平台吞吐量小 TPS : 800/S • 模块依赖性强
12. 架构演进过程-传统分布式模式 业务上游 上游平台 京东商城平台 物流开放平台 京东云仓平台 数据分发平台 改进后 供应商平台 基 础 服 务 • 平台吞吐量提高近百倍 • 模块按职责拆分服务、具 有高扩展能力 接收服务 JSF服务 生产服务 JSF服务 JSF服务 数据通道 数据通道(订单) 数据通道(商品) WebService服务 运维工具 日志服务 数据通道(…) 配置服务 缺点 • 缺少业务数据轨迹追踪 能力 消费服务 订单分组 商品分组 其他分组 异常服务 • 对监控预警能力差,没 有实时预警机制 • 仓储系统 仓储中心一 仓储中心二 仓储中心三 仓储中心...N 大报文数据请求耗时大 TP99 : 50-5000ms
13. 架构演进过程-智能分布式模式 业务上游 上游平台 京东商城平台 物流开放平台 京东云仓平台 改进后 仓储系统 • 数据分发平台 接收服务 录每条原始数据以及请求轨 基 础 服 务 WebService服务 JSF服务 迹。 运维工具 日志服务 生产服务 JSF服务 JSF服务 数据通道 数据通道(订单) 数据通道(商品) 消费服务 订单分组 网关服务 网关服务 商品分组 网关服务 仓储中心一 仓储中心二 • 提供实时监控、预警服务 • 大报文进行存储文件系统 TP99 : 5-30ms 配置服务 数据通道(…) 其他分组 网关服务 监控服务 异常服务 仓储中心三 缺点 • 转移服务 文件存储服务 仓储系统 搭建数据监控服务,异步记 仓储中心…N 和仓储系统很多业务请求是同 步调用,占用大量服务器资源 • 当仓储系统请求慢时会产生大 量客户端无效超时重试。
14. 01 平台介绍 目录 02 架构演进过程 03 平台技术挑战 04 未来技术展望
15. 平台技术挑战 01 02 03 04 高性能 消息积压 网络环境 业务监控 业务发展增速快,日均 数百亿调用量前提下保 证系统高吞吐量。 针对关键业务数据积压 网络延时、闪断的条件 从业务本身做全周期数 问题做到快速响应处理, 下,对网络做到有较高 据可视化监控,自定义 解决消息积压问题。 容忍度。 业务数据预警。
16. 平台技术挑战-高性能 01 缓存机制 异步机制 • 缓存更新几种策略 • 缓存穿透、缓存雪崩 • 异步消息系统 • 异步任务调度 • 本地线程异步 02
17. 平台技术挑战-高性能 缓存更新几种策略 • 先更新数据库,再更新缓存(平台采用) • 先删缓存,再更新数据库 • 先更新数据库,再删除缓存 缓存穿透、缓存雪崩 • 查询数据库不存在的数据,采用缓存空值的方式 • 缓存集中过期失效导致缓存雪崩(热点数据) • 缓存服务器某个节点宕机或断网导致缓存雪崩
18. 平台技术挑战-高性能 01 异步消息系统 • 服务接收数据直接进入消息队列中 • 按业务量和重要程度拆分独立Topic • 消费分组动态配置消费Topic列表 异步机制 02 异步任务调度 • 路由分发请求异常后写入异常任务表 • 路由分发请求异常后按策略自动重试 • 超过重试次数后发送报警通知人为处理 03 本地线程异步 • 线程异步写入过程日志 • 线程异步发送报警信息
19. 平台技术挑战-消息积压 01 01 独立分配Topic 03 使用积压转移程序 开启积压转移程序将当前积压 按业务流量、重要程度来分配独 Topic中业务数据转移到其他消费 立或者共享Topic 02 消息 积压 04 临时扩容消费机器 02 增加消费线程数 消息平台运维端手动修改消费线 程数 03 分组中消费 04 临时扩容机器来加大数据消费能力
20. 平台技术挑战-网络环境 生产服务 消息平台 任务调度 仓储中心 网关服务 网络不可用 网络超时等 重新发送 调度集群 消费服务 实时异常数据 历史异常数据 仓储中心保证 业务数据幂等
21. 平台技术挑战-业务监控 平台 Kibana自定义报表 多维度监控平台 异常数据拉取 查询服务 Log4j2-Kafka 业务报警平台 发送报警 Kafka-消费服务 Flink流式计算 Elasticsearch集群 Elasticsearch集群 业务干系人
22. 01 平台介绍 目录 02 架构演进过程 03 平台技术挑战 04 未来技术展望
23. 未来技术展望 全流程可视化智能监控 智能化消息积压处理 打造一整套可视化智能监控 设置消息积压预警、自动进 平台,并对异常情况、网络 行消息积压转移、线程自动 延迟等问题进行报警和监控。 扩充。 全自动化开仓、加业务 通用协议支持(EDI) 对接仓储开仓系统,一键开 EDI的方式,通过扩展支持 更多的协议。 仓、加业务。