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

2020-03-01 722浏览

  • 1.京东物流仓储数据分发平台架构实践及挑战 江龙飞 京东物流-资深架构师
  • 2.
  • 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的方式,通过扩展支持 更多的协议。 仓、加业务。
  • 24.
  • 25.