Golang在京东列表页重构实践:提升性能与用户体验
需积分: 10 192 浏览量
更新于2024-09-11
收藏 575KB PDF 举报
"Golang在京东列表页实践总结.pdf"
本文主要讲述了作者张洪涛在京东列表页实践中应用Golang进行系统重构的心得体会。张洪涛具有丰富的软件开发和设计经验,曾在多家知名公司任职,并选择了Golang作为服务端计算的语言。
在原有系统中,基于搜索实现的京东列表页存在以下问题:
1. 全量数据导致搜索结果不理想。
2. 接口响应时间较长,影响用户体验。
3. 无法对数据进行二次优化,从而导致转化率较低。
鉴于这些问题,决定对系统进行重构,重构后的关键改进包括:
1. 引入非全量数据,通过线下异步筛选部分最优数据。
2. 实现实时过滤计算,提高接口响应速度,提升用户体验。
3. 对数据进行优化,以提高转化率和商品交易总额(GMV)。
选择Golang的原因在于其强大的并发能力和接近C语言的性能,这在新版系统对CPU计算需求增大的情况下显得尤为重要。
重构后的架构包含以下几个关键组件:
1. Nginx+Lua:负责渲染页面,获取Go计算服务的JSON数据并呈现在终端用户面前。
2. ConfigCenter:作为协调中心,管理worker、Lua服务和Go计算服务。
3. ScoreWorker、DataWorker:这两个worker异步计算数据,从数据平台获取数据,应用各种数据模型筛选最优数据,完成计算后通知ConfigCenter,并将数据存储到数据库中。
4. Go计算服务:分为线上和线下两个集群,线下集群计算完成后通知ConfigCenter,数据预加载到分片的Redis和Go计算服务节点,准备切换至线上提供服务。
5. MQWorker:处理sku上架、下架、库存变动和价格变动等消息。
6. MsgReceiver:接收MQWorker的消息,处理后发送给Go计算服务的各个节点。
系统部署考虑了多机房策略,以防止单机房故障,确保高可用性。整个数据处理流程的核心是ConfigCenter,所有步骤都依赖于它的协调。
这个案例展示了Golang在处理高性能、高并发场景中的优势,以及如何通过重构解决实际业务问题,提高系统效率和用户体验。
2022-07-03 上传
2019-09-20 上传
2024-03-03 上传
2024-08-06 上传
2021-09-19 上传
2021-10-25 上传
2021-08-21 上传
2021-07-31 上传
2024-11-11 上传
DavidHuang123
- 粉丝: 214
- 资源: 4
最新资源
- BottleJS快速入门:演示JavaScript依赖注入优势
- vConsole插件使用教程:输出与复制日志文件
- Node.js v12.7.0版本发布 - 适合高性能Web服务器与网络应用
- Android中实现图片的双指和双击缩放功能
- Anum Pinki英语至乌尔都语开源词典:23000词汇会话
- 三菱电机SLIMDIP智能功率模块在变频洗衣机的应用分析
- 用JavaScript实现的剪刀石头布游戏指南
- Node.js v12.22.1版发布 - 跨平台JavaScript环境新选择
- Infix修复发布:探索新的中缀处理方式
- 罕见疾病酶替代疗法药物非临床研究指导原则报告
- Node.js v10.20.0 版本发布,性能卓越的服务器端JavaScript
- hap-java-client:Java实现的HAP客户端库解析
- Shreyas Satish的GitHub博客自动化静态站点技术解析
- vtomole个人博客网站建设与维护经验分享
- MEAN.JS全栈解决方案:打造MongoDB、Express、AngularJS和Node.js应用
- 东南大学网络空间安全学院复试代码解析