行业报告 AI展会 数据标注 标注供求
数据标注数据集
主页 > 机器学习 正文

【杉枫】推荐引擎异步架构设计

作者: 探索互联网

如果一味追求实时设计,对于线上并发量大的业务来说,瓶颈点是很多的,一个是 IO 消耗时间、一个是存储消耗时间、一个是计算消耗时间。实际情况并不是一个方面的问题,而是三个方面交织在一起。

IO 消耗时间,包含数据读取,读取数据量大,量大 IO 就会消耗时间长。做了很多优化方式:1、多个 key 批量拉取,比单个循环要优化很多时间,合并了 IO,将多次 IO 减少为了 1 次。2、多线程读取,通过多线程方式增加并行性,原来一个线程读,变成多个来提升性能。

存储消耗,存储消耗包含多个方面。1、读取存储速度本身影响着线上性能,大的存储用的是 redis。2、读取 redis 本身消耗时间,采取部分数据提前拉取方式读取,缓存在内存减少读取消耗时间,本身也是存在一个问题,就是本地内存大小问题,缓存数据量局限于本地内存大小。3、存储量的影响,并且对于存储不是能够处理无限的 qps,当数据拉取过多,会导致存储性能下降。

计算消耗,计算本身消耗 cpu。1、将计算拆成新的服务,减少线上业务服务本身计算,但是增加了 IO。2、多线程计算,通过多线程并发计算,减少计算时间,提升性能。

尝试了很多优化方式,取得了一定效果,但是每一种也都会带来一定问题,1、比如多线程能提升并发,但是过多线程会导致性能下降,甚至影响服务稳定。2、服务拆分本身可以增加很多计算量以及解耦,但如果服务之间传输数据特别多,时间都消耗在 IO 传输上,这点如果时间太长,拆分的优势就没了。

分布式带来好处是计算分散,问题也是需要更多机器资源,系统之间也会变复杂。并且能带来一定扩展,但不一定是特别大。

要想获得更多架构设计可能,可能就要转换思路,采取异步方式进行推荐架构设计,握紧手里面什么都没有,张开手获得的是一切。架构设计也是同理,需要换个思路,获得更多可能。

做事情挺重要一点是不断有新的思路,新的思路难点在于推进,特别是在大公司,有好处都上去了,有困难都跑的远远的,也就更需要初心,初心是做一件事,将来才有可能有机会做成更多事,初心是 kpi 过一段时间人就废了。

对于备战双 11 这种事,就是多少艰苦,不可告人。在这个过程中更多是要自己有收获,对于每个技术问题有自己的思考。更多的得到,避免功劳当作苦劳自己有收获,一定要有思考对于遇到的事与问题,解决眼前的问题并想一些根本解决方案,希望对你有点启发。


 

微信公众号

声明:本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。

网友评论:

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
SEM推广服务

Copyright©2005-2028 Sykv.com 可思数据 版权所有    京ICP备14056871号

关于我们   免责声明   广告合作   版权声明   联系我们   原创投稿   网站地图  

可思数据 数据标注

扫码入群
扫码关注

微信公众号

返回顶部