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

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

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月前
|
安全 前端开发 JavaScript
逆向海淘代购集运系统:sugargoo的技术架构与创新服务解读
逆向海淘代购集运系统整合中国电商资源,为海外用户提供便捷购物及物流服务,降低购物成本。sugargoo系统搭建攻略包括: - **需求分析与规划**: 深入了解目标市场需求,明确服务特色。 - **平台开发**: 选用合适技术栈,开发关键功能模块,集成电商数据。 - **物流合作**: 建立物流合作关系,集成物流API提升自动化。 - **支付解决方案**: 支持多种支付方式,保障支付安全。 - **客户服务**: 提供多语言支持,建设专业客服团队。 - **营销与推广**: 优化SEO,利用社交媒体扩大品牌影响。
|
4天前
|
XML Java 数据库
在微服务架构中,请求常跨越多个服务,涉及多组件交互,问题定位因此变得复杂
【9月更文挑战第8天】在微服务架构中,请求常跨越多个服务,涉及多组件交互,问题定位因此变得复杂。日志作为系统行为的第一手资料,传统记录方式因缺乏全局视角而难以满足跨服务追踪需求。本文通过一个电商系统的案例,介绍如何在Spring Boot应用中手动实现日志链路追踪,提升调试效率。我们生成并传递唯一追踪ID,确保日志记录包含该ID,即使日志分散也能串联。示例代码展示了使用过滤器设置追踪ID,并在日志记录及配置中自动包含该ID。这种方法不仅简化了问题定位,还具有良好的扩展性,适用于各种基于Spring Boot的微服务架构。
14 3
|
16天前
|
负载均衡 应用服务中间件 网络安全
Django后端架构开发:Nginx服务优化实践
Django后端架构开发:Nginx服务优化实践
31 2
|
24天前
|
消息中间件 Java API
解密微服务架构:如何在Java中实现高效的服务通信
微服务架构作为一种现代软件开发模式,通过将应用拆分成多个独立的服务,提升了系统的灵活性和扩展性。然而,实现微服务之间的高效通信仍然是许多开发者面临的挑战。本文将探讨在Java环境中实现微服务架构时,如何使用不同的通信机制来优化服务之间的交互,包括同步和异步通信的方法,以及相关的最佳实践。
|
28天前
|
Kubernetes 安全 Serverless
Kubernetes 的架构问题之Serverless Container中提供对外服务如何解决
Kubernetes 的架构问题之Serverless Container中提供对外服务如何解决
61 5
|
29天前
|
编解码 Linux 数据安全/隐私保护
Linux平台x86_64|aarch64架构如何实现轻量级RTSP服务
为满足在Linux平台(x86_64与aarch64架构)上实现轻量级RTSP服务的需求,我们开发了一套解决方案。该方案通过调用`start_rtsp_server()`函数启动RTSP服务,并设置端口号及认证信息。支持AAC音频和H.264视频编码,可推送纯音频、纯视频或音视频流。此外,还支持X11屏幕采集、部分V4L2摄像头采集、帧率/GOP/码率调整、摄像头设备选择与预览等功能。对于音频采集,支持alsa-lib和libpulse接口。整体设计旨在提供150-400ms的低延迟体验,适用于多种应用场景。
|
1月前
|
Prometheus 监控 Java
微服务架构下的服务治理策略:打破服务混乱的惊天秘籍,开启系统稳定的神奇之门!
【8月更文挑战第7天】微服务架构将应用细分为可独立部署的小服务,提升灵活性与可扩展性。但服务增多带来治理挑战。通过服务注册与发现(如Eureka)、容错机制(如Hystrix)、监控工具(如Prometheus+Grafana)、集中配置管理(如Spring Cloud Config)和服务网关(如Zuul),可有效解决这些挑战,确保系统的高可用性和性能。合理运用这些技术和策略,能充分发挥微服务优势,构建高效应用系统。
44 1
|
2月前
|
敏捷开发 消息中间件 中间件
深入理解微服务架构中的服务通信模式
【7月更文挑战第27天】在软件开发的世界中,微服务架构已经成为一种流行的设计范式,它通过将复杂的应用程序分解为一组小的、松耦合的服务来促进敏捷开发和可扩展性。然而,随之而来的是服务间通信的挑战。本文深入探讨了微服务架构中常用的服务通信模式,包括同步请求/响应、异步消息传递和事件驱动通信,并讨论了它们各自的优势与局限性。了解这些模式对于构建高效、可靠的分布式系统至关重要。
|
2月前
|
NoSQL 算法 Java
(十三)全面理解并发编程之分布式架构下Redis、ZK分布式锁的前世今生
本文探讨了从单体架构下的锁机制到分布式架构下的线程安全问题,并详细分析了分布式锁的实现原理和过程。
|
2月前
|
Kubernetes 负载均衡 API
构建高效后端服务:微服务架构的最佳实践
【7月更文挑战第30天】在现代软件开发中,微服务架构已成为设计可扩展、灵活和容错后端系统的首选方法。本文深入探讨了微服务架构的核心概念、设计原则以及实施过程中的关键技术选择。通过分析实际案例,我们揭示了成功部署微服务的最佳实践,包括服务划分、通信协议、数据一致性保障等关键方面,旨在为开发者提供一套实用的指南,以构建和维护高性能的后端服务。
39 4

热门文章

最新文章