商品中台系统的一些设计思考


今天分享实现中台系统中的一些设计思考

系统目标

  • 搭建商品中心系统和服务,支持多个业务线产品的统一存储和输出
  • 数据进去中台系统到可用,延迟不超过5分钟
  • 满足接收消息qps超过2000

系统设计

  • 系统分三个模块,分别负责数据落地,数据搜索和数据详情
  • 使用 ES 作为搜索引擎,使用 Redis 作为数据缓存系统
    系统架构简图

遇到的一些问题

  • 多个业务系统在中台流程不能相互影响
  • 考虑依赖方的接口性能和承受能力
  • 控制处理延时
  • 分表生成中台唯一主键
  • 变更事件过来时不一定能获取到所需的数据

解决方案

  • 给不同业务线分配不同的消息topic,避免相互影响
  • 接收处进行限流设置,对应全量等流量尖峰有控制
  • 依赖接口保证各自的相应,控制自己的请求频率和批量数量
  • 自实现id生成器(分布式锁+id表)
  • 接收消息后延迟执行,便于收集到完整数据

一些心得

  • 系统设计中需要进行限速,防止突发高峰影响系统整体运转
  • 系统中对于应用重启、崩溃等都进行考虑,防止数据丢失
  • 各个地方建立全量机制保持数据一致
  • 建立数据补偿机制,如下游查不到出发数据获取流程

文章作者: Xudong Jiang
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Xudong Jiang !
 本篇
商品中台系统的一些设计思考 商品中台系统的一些设计思考
今天分享实现中台系统中的一些设计思考 系统目标 搭建商品中心系统和服务,支持多个业务线产品的统一存储和输出 数据进去中台系统到可用,延迟不超过5分钟 满足接收消息qps超过2000 系统设计 系统分三个模块,分别负责数据落地,数据搜索和数
2020-05-13
下一篇 
项目中接口性能优化 项目中接口性能优化
今天分享下项目中使用缓存对项目进行性能优化 背景 项目中流量高峰时,db的qps达到15k左右,线程数达到5k(服务器设置的最大连接数),创建链接最高耗费达到2s。数据库服务器的连接数以及cpu升高,处理能力下降,响应时间变长 接口提供的批
2020-04-13
  目录