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

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

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、给我的启发

相关文章
|
2月前
|
Cloud Native Java API
聊聊从单体到微服务架构服务演化过程
本文介绍了从单体应用到微服务再到云原生架构的演进过程。单体应用虽易于搭建和部署,但难以局部更新;面向服务架构(SOA)通过模块化和服务总线提升了组件复用性和分布式部署能力;微服务则进一步实现了服务的独立开发与部署,提高了灵活性;云原生架构则利用容器化、微服务和自动化工具,实现了应用在动态环境中的弹性扩展与高效管理。这一演进体现了软件架构向着更灵活、更高效的方向发展。
|
3月前
|
存储 Linux KVM
Proxmox VE (PVE) 主要架构和重要服务介绍
Proxmox VE (PVE) 是一款开源的虚拟化平台,它基于 KVM (Kernel-based Virtual Machine) 和 LXC (Linux Containers) 技术,支持虚拟机和容器的运行。PVE 还提供高可用集群管理、软件定义存储、备份和恢复以及网络管理等企业级功能。
1340 7
|
3天前
|
消息中间件 存储 安全
分布式系统架构3:服务容错
分布式系统因其复杂性,故障几乎是必然的。那么如何让系统在不可避免的故障中依然保持稳定?本文详细介绍了分布式架构中7种核心的服务容错策略,包括故障转移、快速失败、安全失败等,以及它们在实际业务场景中的应用。无论是支付场景的快速失败,还是日志采集的安全失败,每种策略都有自己的适用领域和优缺点。此外,文章还为技术面试提供了解题思路,助你在关键时刻脱颖而出。掌握这些策略,不仅能提升系统健壮性,还能让你的技术栈更上一层楼!快来深入学习,走向架构师之路吧!
30 11
|
5月前
|
安全 前端开发 JavaScript
逆向海淘代购集运系统:sugargoo的技术架构与创新服务解读
逆向海淘代购集运系统整合中国电商资源,为海外用户提供便捷购物及物流服务,降低购物成本。sugargoo系统搭建攻略包括: - **需求分析与规划**: 深入了解目标市场需求,明确服务特色。 - **平台开发**: 选用合适技术栈,开发关键功能模块,集成电商数据。 - **物流合作**: 建立物流合作关系,集成物流API提升自动化。 - **支付解决方案**: 支持多种支付方式,保障支付安全。 - **客户服务**: 提供多语言支持,建设专业客服团队。 - **营销与推广**: 优化SEO,利用社交媒体扩大品牌影响。
|
27天前
|
Kubernetes Cloud Native Docker
云原生之旅:从传统架构到容器化服务的演变
随着技术的快速发展,云计算已经从简单的虚拟化服务演进到了更加灵活和高效的云原生时代。本文将带你了解云原生的概念、优势以及如何通过容器化技术实现应用的快速部署和扩展。我们将以一个简单的Python Web应用为例,展示如何利用Docker容器进行打包和部署,进而探索Kubernetes如何管理这些容器,确保服务的高可用性和弹性伸缩。
|
29天前
|
存储 负载均衡 监控
如何利用Go语言的高效性、并发支持、简洁性和跨平台性等优势,通过合理设计架构、实现负载均衡、构建容错机制、建立监控体系、优化数据存储及实施服务治理等步骤,打造稳定可靠的服务架构。
在数字化时代,构建高可靠性服务架构至关重要。本文探讨了如何利用Go语言的高效性、并发支持、简洁性和跨平台性等优势,通过合理设计架构、实现负载均衡、构建容错机制、建立监控体系、优化数据存储及实施服务治理等步骤,打造稳定可靠的服务架构。
32 1
|
2月前
|
消息中间件 Kafka 数据库
微服务架构中,如何确保服务之间的数据一致性?
微服务架构中,如何确保服务之间的数据一致性?
|
2月前
|
存储 分布式计算 druid
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
69 3
|
3月前
|
消息中间件 Kafka 数据库
微服务架构中,如何确保服务之间的数据一致性
微服务架构中,如何确保服务之间的数据一致性
|
3月前
|
存储 搜索推荐 数据库
MarkLogic在微服务架构中的应用:提供服务间通信和数据共享的机制
随着微服务架构的发展,服务间通信和数据共享成为关键挑战。本文介绍MarkLogic数据库在微服务架构中的应用,阐述其多模型支持、索引搜索、事务处理及高可用性等优势,以及如何利用MarkLogic实现数据共享、服务间通信、事件驱动架构和数据分析,提升系统的可伸缩性和可靠性。
55 5
下一篇
DataWorks