【杉枫】推荐引擎异步架构设计
|
作者: 探索互联网
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 来源: 转发量:次
声明:本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。