读书笔记第四讲:《百万级并发商品服务架构解密》丁鸣亮

简介: 读书笔记第四讲:《百万级并发商品服务架构解密》丁鸣亮

1、前言:电商平台的商品服务

  • 电商平台的应用

  • 商品的基本定义
  • 类目 Category
  • 后台类目 手机/数码配件
  • 前台类目 苹果手机
  • 品牌 Brand
  • 商品 Goods IPhone7/Iphone8
  • 普通商品 IPhone7
  • 组合商品 IPhone7+屏贴
  • 类似于我们平台 商品+配件
  • 商品图片
  • 商品标签
  • SKU Iphone7 红色+64G/红色+128G
  • 属性 Property
  • 销售属性 颜色/容量大小
  • 普通属性 屏幕尺寸/分辨率
  • 物流属性 重量/长宽高
  • SPU 商家A和商家B的 IPhone7
  • CSPU 商家A和商家B的 IPhone7 红色+64G

2、考拉:商品服务的“黑历史”

时间有限

  • 14年11月立项开发
  • 15年1月初内部试用
  • 15年1月中旬正式对外

人力资源有限

  • 技术团队13人

基于网易美美系统做二次开发

  • 4个工程
  • 2000个在售SKU

业务模型定义( GoodsDetail)

  • 商品维度数据

  • 扩展数据

业务模型调用链

业务模型的缺陷

  • 容量
  • 总是包含商品详情页描述内容
  • 个别商品的容量超过1mb
  • 刷新
  • 同步接口刷新数据
  • 获取刷新数据源需要落库
  • 全量刷新需要20多分钟
  • 性能
  • 压测期间平均RT在300ms
  • 个性化需求导致RT上升到450ms
  • 扩展性
  • 业务模型频繁变动
  • 同一字段有不同的含义
  • 多个工程重复定义

3、2017年:商品服务的破而后立

有限的时间

  • 7月到9月

业务和重构并行

  • 品牌直采
  • 考拉超市
  • 考拉工厂店
  • 供应商直发
  • 商品定时售卖
  • 商品颜色库、尺码库
    … …

8倍的QPS目标

  • 3.2w -> 26w

创业夫妻店 向 考拉大饭店 的转型之路

01 梳理业务边界 确定经营范围

02 资源服务的选型 给饭店选址

03 重新定义数据模型 制作新的菜谱

04 优化商品数据的读写效率

梳理商品前台系统的业务边界

  • 结合现有需求,新建只读的商品前台系统
  • 业务边界外的需求,由应用层自行解决

关键资源服务的选型

4、2018年:商品服务的展望

5、给我的启发

相关文章
|
1月前
|
Cloud Native Java API
聊聊从单体到微服务架构服务演化过程
本文介绍了从单体应用到微服务再到云原生架构的演进过程。单体应用虽易于搭建和部署,但难以局部更新;面向服务架构(SOA)通过模块化和服务总线提升了组件复用性和分布式部署能力;微服务则进一步实现了服务的独立开发与部署,提高了灵活性;云原生架构则利用容器化、微服务和自动化工具,实现了应用在动态环境中的弹性扩展与高效管理。这一演进体现了软件架构向着更灵活、更高效的方向发展。
|
2月前
|
存储 Linux KVM
Proxmox VE (PVE) 主要架构和重要服务介绍
Proxmox VE (PVE) 是一款开源的虚拟化平台,它基于 KVM (Kernel-based Virtual Machine) 和 LXC (Linux Containers) 技术,支持虚拟机和容器的运行。PVE 还提供高可用集群管理、软件定义存储、备份和恢复以及网络管理等企业级功能。
1003 7
|
4月前
|
安全 前端开发 JavaScript
逆向海淘代购集运系统:sugargoo的技术架构与创新服务解读
逆向海淘代购集运系统整合中国电商资源,为海外用户提供便捷购物及物流服务,降低购物成本。sugargoo系统搭建攻略包括: - **需求分析与规划**: 深入了解目标市场需求,明确服务特色。 - **平台开发**: 选用合适技术栈,开发关键功能模块,集成电商数据。 - **物流合作**: 建立物流合作关系,集成物流API提升自动化。 - **支付解决方案**: 支持多种支付方式,保障支付安全。 - **客户服务**: 提供多语言支持,建设专业客服团队。 - **营销与推广**: 优化SEO,利用社交媒体扩大品牌影响。
|
27天前
|
消息中间件 Kafka 数据库
微服务架构中,如何确保服务之间的数据一致性?
微服务架构中,如何确保服务之间的数据一致性?
|
1月前
|
存储 分布式计算 druid
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
52 3
|
2月前
|
消息中间件 Kafka 数据库
微服务架构中,如何确保服务之间的数据一致性
微服务架构中,如何确保服务之间的数据一致性
|
2月前
|
存储 搜索推荐 数据库
MarkLogic在微服务架构中的应用:提供服务间通信和数据共享的机制
随着微服务架构的发展,服务间通信和数据共享成为关键挑战。本文介绍MarkLogic数据库在微服务架构中的应用,阐述其多模型支持、索引搜索、事务处理及高可用性等优势,以及如何利用MarkLogic实现数据共享、服务间通信、事件驱动架构和数据分析,提升系统的可伸缩性和可靠性。
43 5
|
2月前
|
XML Java 数据库
在微服务架构中,请求常跨越多个服务,涉及多组件交互,问题定位因此变得复杂
【9月更文挑战第8天】在微服务架构中,请求常跨越多个服务,涉及多组件交互,问题定位因此变得复杂。日志作为系统行为的第一手资料,传统记录方式因缺乏全局视角而难以满足跨服务追踪需求。本文通过一个电商系统的案例,介绍如何在Spring Boot应用中手动实现日志链路追踪,提升调试效率。我们生成并传递唯一追踪ID,确保日志记录包含该ID,即使日志分散也能串联。示例代码展示了使用过滤器设置追踪ID,并在日志记录及配置中自动包含该ID。这种方法不仅简化了问题定位,还具有良好的扩展性,适用于各种基于Spring Boot的微服务架构。
50 3
|
2月前
|
编解码 Linux 开发工具
Linux平台x86_64|aarch64架构RTMP推送|轻量级RTSP服务模块集成说明
支持x64_64架构、aarch64架构(需要glibc-2.21及以上版本的Linux系统, 需要libX11.so.6, 需要GLib–2.0, 需安装 libstdc++.so.6.0.21、GLIBCXX_3.4.21、 CXXABI_1.3.9)。
|
3月前
|
负载均衡 应用服务中间件 网络安全
Django后端架构开发:Nginx服务优化实践
Django后端架构开发:Nginx服务优化实践
58 2