没有合适的资源?快使用搜索试试~ 我知道了~
本文将会从三个方面来分别探讨如何设计应用架构以更好的支持“秒杀”类需求,包括秒杀带来的问题和挑战、产品架构解决之道、流量控制解决方案。秒杀场景下带来的海量用户所造成的流量突增对系统冲击力可想而知,瞬时流量之高一方面造成的读写冲突,数据库锁会非常严重,另一方面应用服务器能否撑住也是一个问题。同时由于秒杀业务一般是各种活动带来,需要快速上下线,这在开发上也会提出更高的标准,快速支持需求而不出错。从系统上讲我们要做到高可用和高并发;从开发效率上我们要做到敏捷开发以支持产品快速迭代。接下来让我们从产品架构和流量控制这两个方面来讨论并解决这个问题。如果把解决秒杀问题看成一种武林秘籍,则产品架构是内功,
资源详情
资源评论
资源推荐
秒杀系统的架构解决之道秒杀系统的架构解决之道
本文将会从三个方面来分别探讨如何设计应用架构以更好的支持“秒杀”类需求,包括秒杀带来的问题和挑战、产品架构解决之
道、流量控制解决方案。
秒杀场景下带来的海量用户所造成的流量突增对系统冲击力可想而知,瞬时流量之高一方面造成的读写冲突,数据库锁会非常
严重,另一方面应用服务器能否撑住也是一个问题。同时由于秒杀业务一般是各种活动带来,需要快速上下线,这在开发上也
会提出更高的标准,快速支持需求而不出错。从系统上讲我们要做到高可用和高并发;从开发效率上我们要做到敏捷开发以支
持产品快速迭代。接下来让我们从产品架构和流量控制这两个方面来讨论并解决这个问题。如果把解决秒杀问题看成一种武林
秘籍,则产品架构是内功,流量控制是招法,上乘内力搭配制胜招法则无往而不利。
内功:产品架构解决之道
向一站式架构说"NO"
上图是一个典型的一站式架构,未经过良好的设计的系统随着时间的推移逐渐会转换成上图这样,一方面是产品业务的压力,
另一方面也是先天的设计不足。一站式架构存在很多问题。
首先就是不易扩展,难以维护。随着业务的发展,对系统进行扩容难以避免,而一站式架构的可扩展性却令人堪忧,对其扩容
则相当于对系统中的所有功能进行扩容,从代码确认到测试再到环境都是一项艰巨的任务。一站式架构中的扩容往往建立
在“既然什么都没改,则运行应该正常”的假设之上,而扩容迁移中的各种BUG则隐藏在这种假设之中。系统所需的各种权限也
随着规模而不断增多,连接的各种组件也越来越多,由此带来的维护性问题也会持续加重。
其次是代码难以理解,开发质量得不到保证。随着系统规模的扩大,即便是最初经过良好设计的代码,经过人员迭代,需求压
力,也难免会逐渐走向混乱。渐渐的,各种跨层调用,不合适的封装,有副作用的函数等都会出现在代码中,这些设计侵入到
代码中的每个角落,每个人都能见,而每个人都会选择性忽略,因为错综复杂的调用难以调整,也很难找到人员来进行整体测
试。而这些都是BUG产生的温床。
最后在一站式架构下项目的可靠性是无法得到保证的,由于业务调整而修改一处逻辑,往往会影响到代码中很多功能的逻辑,
而这些额外受到影响的功能则通常不会得到测试,只是在假定这些都是正常的,而这种假定也通常正确,直接潜在的问题爆
发。该出错的总会出错,墨菲定律往往这时候是最有效的。
综上可以看出一站式架构设计与敏捷开发格格不入,持续开发,持续集成,持续部署也就只能变成空谈了。
微服务架构
weixin_38705788
- 粉丝: 6
- 资源: 907
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0