# 《并发设计模式》第30章-主动对象模式-重大事故访问商品链接404
作者:冰河
星球: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)
沉淀,成长,突破,帮助他人,成就自我。
- 本章难度:★★☆☆☆
- 本章重点:初步了解主动模式的应用场景,并能够结合自身项目实际场景思考如何将主动对象模式灵活应用到自身实际项目中。
大家好,我是冰河~~
在某些社区电商项目中,对于商品来说,有些商品的访问链接是非常长的,不利于商品访问的跟踪和监控,此时,就需要对商品的链接进行处理,通过长链接再生成一个短链接存储起来,用户既可以通过长链接访问商品,也可以通过短链接访问商品。
这就好比是公众号的文章,同一篇公众号的文章,也会存在一个长链接和一个短链接,用户既可以通过长链接访问公众号的文章,也可以通过短链接访问公众号的文章,例如下面是冰河技术微信公众号的同一篇文章,但是大家打开后发现在浏览器地址栏显示出的却不是同一个链接地址,一个链接地址很长,一个链接地址却很短。
那短链接是怎么生成的呢?又怎么会出现商品404的重大事故问题呢?
# 一、故事背景
由于大量的用户反馈社区电商项目的商品链接太长,不便于识别和转发给好友,同时,运维也反馈商品链接太长,不利于监控和跟踪商品的访问情况。于是公司的技术部门决定为商品在长链接的基础上再生成一个短链接存储,这样用户既可以通过原有的长链接访问商品,也可以通过生成的短链接访问商品。最终,这个需求被分到了小菜的头上,经过小菜的不懈努力,最终完成了商品长链接到短链接的转换,没想到提交测试后,却出现了访问商品链接404的重大问题。
# 二、流程分析
小菜接到开发需求时,第一时间在业务角度和技术角度做了流程分析,要不说小菜做事情比较积极认真呢。
# 2.1 业务流程
对于商品来说,如果要为其生成一个短链接,那肯定就是在运营或者商家在发布商品的时候进行处理,如图30-1所示。
当用户访问商品时,既可以通过长链接访问,又可以通过短链接访问,如图30-2所示。
可以看到,在业务流程上还算是比较简单的,小菜画完图后在心里默默的想着。接着,他又在站在技术角度分析起执行的流程。
# 2.2 技术流程
站在技术角度分析流程时,就需要考虑到部分细节的实现问题了,站在用户的角度看,虽然用户既能够通过长链接访问商品,也能够通过短链接访问商品。但是,站在技术角度和实现角度来说,最终还是通过长链接实现的对商品的访问功能。这就需要在基于商品长链接的基础上生成短链接时,保存长短链接的映射关系,如图30-3所示。
# 查看全文
加入冰河技术 (opens new window)知识星球,解锁完整技术文章与完整代码