高并发推荐系统架构设计-1 基本介绍

简介: 【5月更文挑战第5天】推荐系统是信息过滤工具,通过处理物料数据和行为日志,运用预处理、特征工程、算法模型学习用户兴趣,实现个性化推荐。在线架构包括AB分流、多路召回、模型排序和业务规则重排序。旧版线上架构由C++编写的API和engine服务组成,HTTP请求经SLB、Nginx、FastCGI到达服务程序,召回和排序服务处理推荐。存在并发瓶颈问题。

推荐系统的基本架构

推荐系统本质上是一个信息过滤装置,用来在数以万计的海量内容中,筛选出最符合用户兴趣的那部分内容。

基于推荐系统,用户可以发现自己感兴趣的内容,从而提高体验。平台可以自动发现高价值的内容,从而提高效率,并且带来收益。

一个通用的推荐系统架构,就是以物料数据和行为日志为输入,基于预处理以及特征工程之后,得到相应的特征数据,再应用一些算法和模型,来学习特征数据中的隐含知识,最后根据这些隐含知识,来实现精准的个性化推荐。这其中包含了离线计算部分以及线上部分。
2024-05-06-20-40-57-image.png

推荐系统的Online架构才是真正处理用户请求的服务。当用户的请求到来时,首先经过AB分流模块,在这里对用户的某些特征,应用哈希算法来进行分流,再对分流后的用户应用不同的动态配置,这主要是为了支持不同策略间的对比实验。然后是多路召回阶段,根据用户的某些特征,在多个召回服务以及redis中,并发地获取数据。召回地数据经过滤去重后,就得到了本次推荐的粗略结果。再对这个结果基于模型排序,就得到了基于用户兴趣的个性化推荐结果。最后,基于特定的业务规则,再进行一次重排序。

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

2024-05-06-20-51-43-image.png

旧版本的线上架构如上图所示,主要分为API服务和engine服务,均使用C++编写。API服务主要实现两个接口,一个是推荐feed接口,一个是获取详情接口。recall服务是召回服务,predict服务是模型排序服务。

当http请求到来的时候,首先经过SLB到达一台ECS,然后经过本机上部署的Nginx,转化成FastCGI协议,到达服务程序。Feed流推荐接口,依赖后续的几个服务,但是详情接口只是从redis里取数据。

目录
相关文章
|
4天前
|
缓存 NoSQL 关系型数据库
|
4天前
|
机器学习/深度学习 搜索推荐 算法
深度学习推荐系统架构、Sparrow RecSys项目及深度学习基础知识
深度学习推荐系统架构、Sparrow RecSys项目及深度学习基础知识
|
4天前
|
SQL 分布式计算 搜索推荐
【推荐系统】推荐业务架构介绍(一)
【推荐系统】推荐业务架构介绍(一)
105 0
|
4天前
|
机器学习/深度学习 搜索推荐 算法
优秀的推荐系统架构与应用:从YouTube到Pinterest、Flink和阿里巴巴
优秀的推荐系统架构与应用:从YouTube到Pinterest、Flink和阿里巴巴
110 0
|
4天前
|
缓存 安全 API
【亿级数据专题】「高并发架构」盘点本年度探索对外服务的百万请求量的API网关设计实现
公司对外开放的OpenAPI-Server服务,作为核心内部系统与外部系统之间的重要通讯枢纽,每天处理数百万次的API调用、亿级别的消息推送以及TB/PB级别的数据同步。经过多年流量的持续增长,该服务体系依然稳固可靠,展现出强大的负载能力。
75 9
【亿级数据专题】「高并发架构」盘点本年度探索对外服务的百万请求量的API网关设计实现
|
4天前
|
消息中间件 缓存 NoSQL
设计一个高并发场景下的Python Web应用架构。
在高并发Python Web架构中,关键组件包括负载均衡器用于分散请求,应用服务器如Gunicorn与Docker部署多实例,缓存如Redis提升数据访问速度,优化后的数据库(如MySQL或MongoDB),消息队列如RabbitMQ处理异步任务,通过横向扩展增加服务器,监控和日志系统确保稳定性,代码优化减少不必要的操作,CDN加速静态资源,以及自动化部署和弹性伸缩工具适应负载变化。性能测试和优化是保证系统稳定性的关键。
|
4天前
|
缓存 负载均衡 网络协议
作者推荐 | 高并发挑战?试试这些架构优化篇技巧,让你的系统焕发新生!
作者推荐 | 高并发挑战?试试这些架构优化篇技巧,让你的系统焕发新生!
50 1
|
4天前
|
存储 消息中间件 Java
【亿级数据专题】「高并发架构」盘点本年度探索对外服务的百万请求量的高可靠消息服务设计实现
在深入研究了 **“【亿级数据专题】「高并发架构」盘点本年度探索对外服务的百万请求量的API网关设计实现”** 设计实现后,我们意识到,尽管API网关为服务商提供了高效的数据获取手段,但实时数据的获取仍然是一个亟待解决的问题。
47 1
【亿级数据专题】「高并发架构」盘点本年度探索对外服务的百万请求量的高可靠消息服务设计实现
|
4天前
|
存储 缓存 算法
高并发架构设计三大利器:缓存、限流和降级
软件系统有三个追求:高性能、高并发、高可用,俗称三高。本篇讨论高并发,从高并发是什么到高并发应对的策略、缓存、限流、降级等。
716 4
|
4天前
|
缓存 算法 Java
首次公开!阿里巴巴最新高并发架构设计实录被我从Github扒下来了
前言 现在Java面试,问的是越来越底层。作为一名合格的Java程序员不仅要能“上天”,还要能“入地”!上天是指高并发,缓存,大流量,大数据量,能在更高的层面解决问题,入地是指从JVM,OS,算法,线程,IO这块刨根究底,对底层知识都能知其然还要知其所以然。 而本篇要跟大家探讨的就是“上天”这块的内容。据有关数据表明,现在基本工作年限超过5年的Java开发岗以及各大厂招聘岗位,对于这块内容是必定会考察的。这也就意味着,你想要在今年这个大环境下,找到一份薪水高且发展前景好的岗位,不关基础知识还要有良好的编码习惯和能力、排查问题、解决问题的能力以及整体系统的设计能力和架构能力。
75 1

热门文章

最新文章