美文网首页互联网科技码农的世界
Java架构——推荐引擎异步架构设计

Java架构——推荐引擎异步架构设计

作者: 像程序一样思考 | 来源:发表于2018-11-13 17:21 被阅读6次

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

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

给大家推荐一个程序员学习交流群:702895049。群里有分享的视频,还有思维导图

群公告有视频,都是干货的,你可以下载来看。主要分享分布式架构、高可扩展、高性能、高并发、性能优化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战学习架构师视频。

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

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

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

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

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

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

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

给大家推荐一个程序员学习交流群:702895049。群里有分享的视频,还有思维导图

群公告有视频,都是干货的,你可以下载来看。主要分享分布式架构、高可扩展、高性能、高并发、性能优化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战学习架构师视频。

下面是我花了很久整理出来的Java架构师进阶必经之路,喜欢的关注我点赞,感兴趣的也可以加群讨论交流!

相关文章

网友评论

    本文标题:Java架构——推荐引擎异步架构设计

    本文链接:https://www.haomeiwen.com/subject/mmvlfqtx.html