# 《并发设计模式》第51章-主仆模式-基于主仆模式优化统计热点商品功能
作者:冰河
星球:http://m6z.cn/6aeFbs (opens new window)
博客:https://binghe.gitcode.host (opens new window)
文章汇总:https://binghe.gitcode.host/md/all/all.html (opens new window)
源码获取地址:https://t.zsxq.com/0dhvFs5oR (opens new window)
沉淀,成长,突破,帮助他人,成就自我。
- 本章难度:★★☆☆☆
- 本章重点:了解主仆模式的核心原理与使用场景,能够初步结合自身项目实际场景思考如何将主仆模式灵活应用到自身实际项目中。
大家好,我是冰河~~
主仆模式本质上就是一种分而治之的思想,最核心的思想就是将一个比较大的任务分解成若干个比较小的子任务,并且会由专门的工作线程来并行执行这些拆分后的子任务,得出子任务的分析结果后,再整合各个子任务的处理结果,形成最终的结果数据。以这种分而治之的思想,很适合并行执行任务的场景。
# 一、故事背景
小菜在老王的指导下,分析出了社区电商系统分析统计热点商品性能问题的原因所在,也明白了到底什么是主仆模式,但是,还有一个问题就是小菜刚刚对主仆模式有所了解,还不知道如何在项目中使用主仆模式开发功能,为了尽快的完成热点商品统计功能的优化工作,小菜决定还是请教老王。在老王耐心的指导下,最终,基于主仆模式优化了热点商品的统计功能。
# 二、问题回顾
统计社区电商系统中的热点商品时,会通过分析统计访问商品的日志文件来统计出最终的TopN热点商品,对于商品的日志文件来说,会每隔1小时生成一个新的日志文件。并且在统计热点商品时,往往会指定一个时间范围去统计,因此,在统计热点商品时,需要找到符合时间范围条件的日志文件,读取文件的内容进行分析统计,如图51-1所示。
如果整个过程采用串行化方式执行,当商品非常多,用户访问量比较高,并且运营需要分析统计的时间跨度比较长时,这种统计方式就会出现很严重的性能问题,如图51-2所示。
经过分析,社区电商系统根据日志文件统计热点商品,并且每隔一段时间会新生成一个日志文件的业务,就很适合使用主仆模式来优化业务场景。
# 三、优化流程
使用主仆模式优化统计热点商品的功能流程如图51-3所示。
# 查看全文
加入冰河技术 (opens new window)知识星球,解锁完整技术文章与完整代码