春节策划第3期 | 如何运用架构知识解读春运买票和手游案例?
任杰
你好,我是任杰。
今天是大年初六,估计你还在假期中,所以首先祝你假期愉快。不知道我在春节策划第 1 期留的两道主观题,你想到了怎样的方案呢?接下来,我就来公布参考答案啦,希望对你有所启发。
春运卖票案例分析
Q:除了支付以外,技术圈还有一个广为人知的高难度系统,那就是卖火车票(第 1 期的完整题干点击这里回顾)。12306 有雄厚的资金,因此可以选择一些特殊的软硬件方案来解决卖票的问题。作为一个金融系统背景的人来说,你应该如何分析这个春运卖票的问题呢?
A:我们先分析一下新闻数据。
从第一个新闻可以算出来,一天累计发票 1000 万张,所以约等于每秒 115 笔交易。这个平均值并不算太高。如果考虑到峰值情况,我们大致可以估算出,网站的峰值 TPS 在几百到几千左右。
从第二个新闻我们可以算出来,在峰值情况下网站的 QPS 接近 200 万。新闻里也提到了淘宝的订单 TPS 在 50 万左右,因此 12306 峰值的 QPS 是淘宝峰值 TPS 的 4 倍。
这两个数据的比较并没有给我们额外的信息,因为优化 TPS 的架构和优化 QPS 的架构非常不一样,这两者没有可比性。而且 TPS 会更难处理,TPS 值低一些很正常。
分析到这里还没完,我们还需要把这两个新闻合在一起看。春运卖票的 TPS 在几百,但是 QPS 在 200 万,因此它是一个查询量极其巨大,但是交易量正常的业务。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文通过分析春运卖票案例,展示了如何运用架构知识解决高难度系统问题。文章首先介绍了春运卖票系统的交易量和查询量,并提出了采用CQRS架构设计方案进行读写分离的优化思路。针对数据的写入操作,文章分析了状态数和数据操作复杂度,并指出大部分数据系统能够支持这一操作。针对数据的读取操作,文章强调了查询的复杂度和挑战,并提出了将出票信息异步推送给查询系统的解决方案。最后,文章总结指出,架构的真正挑战在于读的部分,但由于卖票业务不要求读写在同一个事务处理,这给了读操作极大的优化空间。整体而言,本文通过具体案例分析,展示了如何运用架构知识解决复杂系统问题,为读者提供了深入理解和应用架构知识的实际指导。文章内容涉及游戏架构设计思路,通过事件溯源架构解决游戏掉线问题,分析了命令、事件和状态的关系,以及游戏服务器和手机端的数据处理和状态更新方式。同时,强调了事件溯源提供的时光机、读模式节点等能力,并探讨了自动机的随机性问题。通过这些案例,读者可以深入了解架构设计在解决复杂系统问题中的应用,以及架构核心知识的通用性和合理使用方法。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式金融架构课》,新⼈⾸单¥59
《分布式金融架构课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(1)
- 最新
- 精选
- liupan类似于商城订单有无必要使用事件队列和命令队列拆分执行?2021-09-03
收起评论