带你读《2022技术人的百宝黑皮书》——谈一谈凑单页的那些优雅设计(1)

简介: 带你读《2022技术人的百宝黑皮书》——谈一谈凑单页的那些优雅设计(1)

谈一谈凑单页的那些优雅设计

image.pngimage.png作者:鸣翰(郑健) 出品:大淘宝技术

 

 

本文将详细介绍作者如何在业务增长的情况下重构与优化系统设计。

 

写在前面

 

凑单页存在的历史也算是比较悠久了,我从去年接手到现在也经历不少的版本变更,最开始只是简单feeds流,为提升用户体验,更好的帮助用户去凑到满意的商品,我们在重构整个凑单页的同时,还新增了榜单、限时秒杀模块,在双十一期间,加购率和转化率得到明显提升。今年618还新增了凑单进度购物栏模块,支持了实时凑单进度展示以及结算下单的能力,提升用户凑单体验。并且在凑单页完成业务迭代的同时,也一路沉淀了些通用的能力支撑其他业务快速迭代,本文我将详细介绍我是如何在业务增长的情况下重构与优化系统设计的。

image.png

 

 

针对一些段时间内不会变化的,数量比较有限的数据,为了减少下游的压力,并提高自身系统的性能,我们常常会使用多级缓存来达到该目的。最常见的就是本地缓存 + redis缓存来承接,如果本地缓存不存在,则取redis缓存的数据,并本地缓存起来,如果redis也不存在,则再从数据源获取,基本代码(获取榜单数据)如下:

 

 

 

  return LOCAL_CACHE.get(key, () -> {
  String cache = rdbCommonTairCluster.get(key);
  if (StringUtils.isNotBlank(cache)) {
  return JSON.parseObject(cache, new TypeReference<List<ItemShow>>(){}); 5 }
  List<ItemShow> itemShows = getRankingItemOriginal(context, rankingRequest);
   rdbCommonTairCluster.set(key, JSON.toJSONString(itemShows), new SetParams().ex(Common- Switch.rankingExpireSecond));
  return itemShows;
});

 

 

逐渐的就出现了问题,线上偶现某些用户一段时间看不到榜单模块。榜单模块示意图如下:

image.png

 

这种问题排查起来最是棘手,需要一定的项目经验,我第一次遇到这类问题也是费了老大劲。总结一下,如果某次缓存过期,下游服务刚好返回了空结果,就会导致本次请求被缓存了空结果。那该缓存的生命周期内,榜单模块都会消失,但由于某些机器本地缓存还有旧数据,就会导致部分用户能看到,部分用户看不到的场景。

 

带你读《2022技术人的百宝黑皮书》——谈一谈凑单页的那些优雅设计(2)https://developer.aliyun.com/article/1338385?groupCode=taobaotech



相关文章
|
移动开发 数据可视化 weex
如何在线生成App:将网页封装成APP
随着移动互联网的快速发展,很多企业和个人都希望能够将自己的网页封装成APP,以便更好地适应用户的移动需求。本文将介绍一种在线生成App的方法,帮助读者实现将网页封装成APP的目标
591 0
|
机器学习/深度学习 编解码 算法
yolo原理系列——yolov1--yolov5详细解释
yolo原理系列——yolov1--yolov5详细解释
2047 0
yolo原理系列——yolov1--yolov5详细解释
|
计算机视觉 vr&ar 存储
带你读《射频集成电路及系统设计》之一:射频元件
本书针对射频集成电路和系统设计的核心问题,提供理论与实践与现实世界的应用实例,还提供了实用的设计指导,涵盖各种拓扑结构设计。主要包括射频组件、信号和系统、两个端口、噪声、失真、低噪声放大器、混频器、振荡器、功率放大器和收发器架构。为学生提供在射频集成电路和系统设计中未来的职业所需的背景知识和实用工具。适合电子工程、通信工程、自动化等专业的高年级本科或研究生教材。
|
5月前
|
API 开发者
美股(纳斯达克/纽交所)数据 API 对接实战(含实时行情与 IPO 功能)
本文介绍如何通过StockTV API快速对接美股数据,支持纳斯达克、纽交所实时行情、IPO日历、K线图及公司基本面信息。仅需配置`countryId=5`,即可高效集成专业级金融数据,适用于量化交易与行情应用开发。
|
8月前
|
传感器 人工智能 安全
AR 巡检在工业的应用|阿法龙XR云平台
AR巡检技术广泛应用于电力、石化、制造、交通等行业,通过AR眼镜或平板实时叠加设备参数、历史数据及操作指引,提升巡检效率与准确性。支持远程协作、自动记录分析,并可在高危环境实现无人巡检,大幅降低安全风险,推动智能化运维升级。
|
安全 网络协议 定位技术
如何简单快速获取公网IP地址:在线工具推荐
如何简单快速获取公网IP地址:在线工具推荐
6743 0
|
Java Linux Go
知识分享之Golang——读取pdf中纯文本内容
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。 知识分享系列目前包含Java、Golang、Linux、Docker等等。
2497 1
知识分享之Golang——读取pdf中纯文本内容
|
算法
数据结构之购物车系统(链表和栈)
本文介绍了基于链表和栈的购物车系统的设计与实现。该系统通过命令行界面提供商品管理、购物车查看、结算等功能,支持用户便捷地管理购物清单。核心代码定义了商品、购物车商品节点和购物车的数据结构,并实现了添加、删除商品、查看购物车内容及结算等操作。算法分析显示,系统在处理小规模购物车时表现良好,但在大规模购物车操作下可能存在性能瓶颈。
429 0
|
存储 安全 网络协议
IoT亿级设备接入层建设实践
互联网的产品基本都需要解决终端的接入问题,每个接入层会因为终端数量、终端能力、网络环境等不同的因素有各自的设计特性。物联网场景下由于IoT设备的特点,不同的&quot;物&quot;特性催生了不同的IoT接入层。本文详细介绍了阿里云IoT在接入层的一些关键策略和设计。
1927 0
|
Ubuntu 应用服务中间件 nginx
docker--导出镜像 save/export、导入镜像 load/import
docker--导出镜像 save/export、导入镜像 load/import
21894 1