【杉枫】推荐引擎异步架构设计
作者: 探索互联网
如果一味追求实时设计,对于线上并发量大的业务来说,瓶颈点是很多的,一个是 IO 消耗时间、一个是存储消耗时间、一个是计算消耗时间。实际情况并不是一个方面的问题,而是三个方面交织在一起。
IO 消耗时间,包含数据读取,读取数据量大,量大 IO 就会消耗时间长。做了很多优化方式:1、多个 key 批量拉取,比单个循环要优化很多时间,合并了 IO,将多次 IO 减少为了 1 次。2、多线程读取,通过多线程方式增加并行性,原来一个线程读,变成多个来提升性能。
存储消耗,存储消耗包含多个方面。1、读取存储速度本身影响着线上性能,大的存储用的是 redis。2、读取 redis 本身消耗时间,采取部分数据提前拉取方式读取,缓存在内存减少读取消耗时间,本身也是存在一个问题,就是本地内存大小问题,缓存数据量局限于本地内存大小。3、存储量的影响,并且对于存储不是能够处理无限的 qps,当数据拉取过多,会导致存储性能下降。
计算消耗,计算本身消耗 cpu。1、将计算拆成新的服务,减少线上业务服务本身计算,但是增加了 IO。2、多线程计算,通过多线程并发计算,减少计算时间,提升性能。
尝试了很多优化方式,取得了一定效果,但是每一种也都会带来一定问题,1、比如多线程能提升并发,但是过多线程会导致性能下降,甚至影响服务稳定。2、服务拆分本身可以增加很多计算量以及解耦,但如果服务之间传输数据特别多,时间都消耗在 IO 传输上,这点如果时间太长,拆分的优势就没了。
分布式带来好处是计算分散,问题也是需要更多机器资源,系统之间也会变复杂。并且能带来一定扩展,但不一定是特别大。
要想获得更多架构设计可能,可能就要转换思路,采取异步方式进行推荐架构设计,握紧手里面什么都没有,张开手获得的是一切。架构设计也是同理,需要换个思路,获得更多可能。
做事情挺重要一点是不断有新的思路,新的思路难点在于推进,特别是在大公司,有好处都上去了,有困难都跑的远远的,也就更需要初心,初心是做一件事,将来才有可能有机会做成更多事,初心是 kpi 过一段时间人就废了。
对于备战双 11 这种事,就是多少艰苦,不可告人。在这个过程中更多是要自己有收获,对于每个技术问题有自己的思考。更多的得到,避免功劳当作苦劳自己有收获,一定要有思考对于遇到的事与问题,解决眼前的问题并想一些根本解决方案,希望对你有点启发。
时间:2018-11-11 23:34 来源: 转发量:次
声明:本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。
相关文章:
- [机器学习]堪比当年的LSTM,Transformer引燃机器学习圈:它是
- [机器学习]论机器学习领域的内卷:不读PhD,我配不配找工
- [机器学习]Attention!当推荐系统遇见注意力机制
- [机器学习]机器学习基础图表:概念、原理、历史、趋势和算法
- [机器学习]分析了 600 多种烘焙配方,机器学习开发出新品
- [机器学习]2021年的机器学习生命周期
- [机器学习]物联网和机器学习促进企业业务发展的5种方式
- [机器学习]机器学习中分类任务的常用评估指标和Python代码实现
- [机器学习]机器学习和深度学习的区别是什么?
- [机器学习]堪比当年的LSTM,Transformer引燃机器学习圈:它是
相关推荐:
网友评论: