基于Go语言实现高并发推荐系统架构设计

Posted ArchSummit全球架构师峰会

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Go语言实现高并发推荐系统架构设计相关的知识,希望对你有一定的参考价值。

本文由 InfoQ 整理自小年糕算法中台后端架构师封幼林在 QCon+ 大厂案例(2021 冬季北京站)的分享《高并发推荐系统架构设计》。  
作者|封幼林
编辑|贾亚宁

你好!我是封幼林,在小年糕负责推荐系统,主要从事服务架构相关工作。今天我要和你分享的话题是《高并发推荐系统架构设计》。

这次分享主要分为以下这几个部分:

  1. 推荐系统的基本架构

  2. 旧版线上架构的并发瓶颈问题

  3. 新版线上架构编程语言的选择

  4. 印象深刻的 Go 踩坑经历

执行系统调用的时候,其关联的 P 可以被其他 M 抢占,保证了资源的利用率。内部,编码方式对开发者友好;

3.GMP 调度模型在多核 CPU 上有很好的扩展性,能充分发挥系统的计算能力;
4.闭包的捕获列表会尽量捕获值,只有变量会被修改时捕获地址。
最后,如果我再做一遍这个项目,我可能会从两个角度上再优化一下:
1.要落实系统、全面的测试。尤其在进行重构的时候,我们遇到过的很多问题,都是因为测试不完善,或者测试环境不能模拟真实环境所致。很多本来是可以避免的,所以落实系统、全面的测试真的很有必要。
2.避免过度设计。我们从一入行就被告知,写的程序要灵活易于扩展。长此以往之后,很多人实际上会做过度设计。反思我自己也有这种问题,代码中的各种设计模式,还有服务模块的拆分等等。不仅造成了较高的维护成本,还会在一定程度上影响性能。所以一定要结合实际需求进行设计。

最后送你一句话,知其所以然,磨刀不误砍柴工。

作者简介
封幼林,小年糕 算法中台后端架构师
现为小年糕公司推荐系统后端架构负责人,带队用 Go 重写了推荐系统的整个线上架构。此前任职于猎豹移动国内工具部门,负责国内新闻推荐系统相关服务的开发与演进。喜欢使用 C++ 和 Go 语言,对底层实现原理感兴趣。微信公众号“幼麟实验室”的作者(B 站和知乎同名账号),著有《深度探索 Go 语言》一书(即将出版)。
活动推荐
2022 年 4 月 24-25 日,将在上海·宝华万豪酒店举办 ArchSummit 全球架构师峰会,议题更加聚焦纵深,更加丰富,内容涵盖业务场景、行业应用、一线实践。议题都是经过组委会和专题出品人层层筛选出来的,讲师也都是业界大公司的技术骨干,技术大拿。在讲师的演讲表现上,我们也会要求讲师提前远程试讲,打磨 PPT,把最好的内容和最棒的讲师呈现在听众面前。目前会议 7 折末期,想要购票的可以直接扫描下方二维码或者联系票务经理小倩:18514549229(同微信)

4.16Go语言实现的千万级并发秒杀抢购系统原理揭秘

重大利好,老男孩IT教育福利又来袭!


2017年4月16日

Go语言实现的千万级并发秒杀抢购系统原理揭秘


几行代码轻松搞定数倍性能的提升

高并发服务器端的开发

海量日志系统架构设计

高并发秒杀系统的案例

核心秒杀逻辑以及性能优化


名额有限,速速报名!


国内Top5知名互联网架构师带你领略Go语言的风骚



点击“阅读原文”,速速抢位!


更多IT技术性文章和福利活动

以上是关于基于Go语言实现高并发推荐系统架构设计的主要内容,如果未能解决你的问题,请参考以下文章

2.Go语言高并发与微服务实战 --- 微服务概述

2.Go语言高并发与微服务实战 --- 微服务概述

13.Go语言高并发与微服务实战 --- 综合实战:秒杀系统的设计与实现

13.Go语言高并发与微服务实战 --- 综合实战:秒杀系统的设计与实现

基于Golang协程实现流量统计系统

go实现高并发高可用分布式系统:设计类似kafka的高并发海量数据存储机制2