原文地址:https://mp.weixin.qq.com/s/5z1XEweso5wtJoZI0Z7Cfw

今天读了尹坚老师写的《苏宁易购:商品详情系统架构设计》,感受如下

首先介绍什么是商品详情系统,是一个展示商品基本信息、参数等详情的系统,是商品购买的入口。它是电商平台中访问量最大的系统之一,苏宁易购大促期间PV量和UV量很大,这么大的访问量对系统的并发能力要求高。在业务上它与周边系统的关系是高耦合。依赖商品详情系统的的系统特别多,比如:促销系统、推荐系统、大聚惠、等众多营销系统、还有主数据系统、购物车、收藏夹等,业务复杂度高对系统设计提出更多的要求。

总结了商品详情系统三要素:展示、数据处理、服务依赖。

前台页面设计:1.动静分离。2.异步加载和懒加载。3.多级缓存策略。4.CDN缓存。5.Varnish缓存。6.精准缓存。

后台设计:商品详情系统商品主数据通过MQ消息来源于外部系统,比如:商品基本信息、参数、参数模版、品牌、品类等。我们设计时把共性抽出来分成三部分:

接受MQ消息并持久化通过Listener、解析报文、业务处理上简化为add、update、delete三个动作、异常组件以观察者模式实现,记录处理失败的MQ消息并对消息进行截取,并供下次再反向执行(一条MQ消息中会有一到多条参数、品牌,所以这里用截取)。

接下来我们看一下架构演变:

1.0时代中规中矩,移动端完全移值PC的做法

我们使用中规中矩的部署方式Varnish+Apache+JBoss。

这种架构在针对中小系统没有什么问题,但像商品详情系统这种访问量巨大的系统会显的有点吃力。移动端对性能的要求更高。

2.0时代PC和移动端服务分离,移动端服务合并,性能优化

a. 服务分离与服务合并

PC和移动端的服务分离,以前是同一个接口支持多端,现在是每端都有独立的应用层服务,原子层服务共享。

移动端处理器和内存性能上的限制,采用服务的合并,且移动端用Nginx+Lua。

b. 公共服务

提出了一个公共服务,公共服务用来接受PC、WAP、APP公共的异步请求的服务。

c.分布式文件系统

商品详情页在回源过程中压力很大,基于其不可降级,我们提出了把商品详情页做为一个静态页放到分布式文件系统,当DB和Redis压力过大,直接调取分布式文件系统中数据

3.0时代重点优化移动端性能,接口合并颗粒度更细,增加聚合服务层

多端都使用Nginx+LuaNginx 的异步非阻塞型事件处理机制资源消耗少,并发能力高。

  1. 用Nginx+Lua做为整体的接入层
  2. 在Nginx接入层 加入三层缓存
  3. 只有聚合信息才会调用服务层,减少依赖关系
  4. 服务层数据通过Worker推送和刷新缓存,这亲服务层完全和DB隔离
  5. 移动端连接复用、链路复用、防劫持SDK开发等

架构框架的改变加上,回源方案、多端融合以及分布式存储的应用都很好的使苏宁易购的商品详情系统运作的很完美。

转载于:https://www.cnblogs.com/qilin20/p/10964101.html

《苏宁易购:商品详情系统架构设计》读后感相关推荐

  1. GC13:XO独占游戏《神鬼寓言传奇》公布

    作者: 来源: www.bts668.com 微软日前公布了<神鬼寓言传奇>(Fable Legends),该游戏是此系列作品的新作,将作为Xbox One游戏出现. 这款由狮子头工作室开 ...

  2. Facebook 重金挖不到,ASP.NET 之父,微软大神“红衣教主”传奇

    作者 | 伍杏玲 出品 | CSDN (ID:CSDNnews) 2018 年底,微软"王者归来",时隔 16 年市值重返全球第一.人们纷纷用"力挽狂澜"&qu ...

  3. 乔布斯去世衍生多种周边产品(支持乔布斯请顶)

    各种乔布斯肖像 乔布斯公仔 乔布斯立体纸人 不管你是不是狂热的苹果粉丝,是不是拥有n多的苹果产品,苹果帮主乔布斯都应该值得我们纪念. "为什么说乔布斯改变了世界?没有 iPhone,就不会有 ...

  4. 一战封神!“中国飞人”苏炳添跑出9秒83到底有多牛?

    公众号后台回复"图书",了解更多号主新书内容作者:CDA数据分析师来源:CDA数据分析师 [导读] 在刚刚结束的东京奥运会百米飞人大战上,中国选手苏炳添在半决赛跑出9秒83,刷新了 ...

  5. 乔布斯导演的最后一幕

    连作者也说,他仅仅是这本书的写作者,真正的作者是乔布斯."中信出版社总编辑潘岳近日分享了<史蒂夫·乔布斯传>幕后的故事.这本传记预定期已达100万册,预估最终销量将达到500万册 ...

  6. 30本pdf完整版的经典Linux学习和开发教程和资料下载 android arm java 资料大全

    史上最牛的Linux内核学习方法论   点击下载 我的arm_linux移植笔记   点击下载 S3C2440完全开发流程   点击下载 Linux系统命令及其使用详解完整版   点击下载 Linux ...

  7. 30本pdf完整版的经典Linux学习和开发教程和资料下载 android arm java 资料大全...

    史上最牛的Linux内核学习方法论 点击下载 我的arm_linux移植笔记 点击下载 S3C2440完全开发流程 点击下载 Linux系统命令及其使用详解完整版 点击下载 Linux主要shell命 ...

  8. 养成励志的习惯,一生励志——文指星终极励志

    语言的突破全集 卡耐基 --励志经典     点击下载 人性的优点--卡耐基名著--励志经典     点击下载 人生格言精华总集     点击下载 人生定律与原则--励志经典     点击下载 厚黑学 ...

  9. 养成励志的习惯,一生励志

    语言的突破全集 卡耐基 --励志经典     点击下载 人性的优点--卡耐基名著--励志经典     点击下载 人生格言精华总集     点击下载 人生定律与原则--励志经典     点击下载 厚黑学 ...

  10. 【转】乔布斯经典语录

    2011年8月25日消息,乔布斯辞去了苹果公司CEO的职务.10月6日,传来了他去世的消息.在此缅怀乔帮主的同时,与大家分享乔布斯在世时的经典语录.(来自于<乔布斯传>--神一样的传奇的附 ...

最新文章

  1. Android开发六年收获阿里offer定级P7,多亏在阿里P8师兄给的攻略、面试技巧以及学习笔记!!!
  2. Android 告急!
  3. 【软件需求工程与建模 - 小组项目】阶段性汇报-软件设计规格说明书3.0
  4. web前端技术分享:web前端的求职前景好不好?
  5. java反射学习(2):反射与代理模式
  6. 去马赛克神器 JavPlayer TG Modle 最新版
  7. python列表json_python-带有列表的JSON_normalize JSON文件包含字...
  8. 为什么将表格的method改为post后就无法工作_不用再等后端的接口啦!这个开源项目花 2 分钟就能模拟出后端接口...
  9. 终于解决了无运行无网上邻居的问题
  10. 执行mount挂载命令 报错:mount: you must specify the filesystem type
  11. uml定义的使用的关系
  12. servlet中web.xml配置
  13. linux下回收站在哪个文件夹,linux回收站在哪里
  14. 赤兔CMS(CTCMS)V2.0.6版更新了后台模板样式
  15. 315|大数据杀熟,如何才不被坑?
  16. 质数 素数 合数 闰年 回文
  17. 移动安全-移动App漏洞检测平台
  18. 〖Python 数据库开发实战 - Python与Redis交互篇⑯〗- 综合案例 - 新闻管理系统第二阶段完结 - “app.py“ 模块收尾及案例演示
  19. MuMu模拟器进行adb操作
  20. 视频教程-软考项目管理知识实战(上)-软考

热门文章

  1. 【杂谈与乱码】资本论-计算机时代
  2. 小白linux bash 学习前奏二 vi操作
  3. 电脑入门必懂的常识5
  4. 信息系统项目管理师-希赛早期软考视频教程
  5. leafLet入门教程兼leafLet API中文文档参考
  6. 乌班图(Ubuntu)单系统或者乌班图+Win双系统安装教程
  7. linux 进入汉字目录,终端下拼音补全中文名称和路径
  8. “信”守不渝,坚持为用户创造价值
  9. 运维常用Mysql基本命令
  10. 一文带你搞懂 SSR