高并发实战总结02
  dBFTbkVLMBge 2023年11月02日 22 0

一、秒杀系统

高并发实战总结02_高并发

高并发实战总结02_高并发_02

高并发实战总结02_高并发_03

高并发实战总结02_高并发_04

高并发实战总结02_高并发_05

高并发实战总结02_高并发_06

高并发实战总结02_高并发_07

二、交友系统设计

高并发实战总结02_高并发_08

高并发实战总结02_高并发_09

高并发实战总结02_高并发_10

高并发实战总结02_高并发_11

由上图可知,首先,用户所有请求都通过统一的网关服务器处理。网关服务器负责限流、防gongji 用户身份识别及权限验证、微服务调用及数据聚合封装等,而真正的业务逻辑则通过访问微服务来完成。Liao 的关键微服务有:用户微服务、图片微服务、配对微服务、聊天微服务、推荐微服务、邻近算法微服务等。Liao 的网关预计将承担每天百亿次规模的访问压力。

高并发实战总结02_高并发_12

高并发实战总结02_高并发_13

高并发实战总结02_高并发_14

我们的用户量非常大,而计算邻近好友又是一个非常高频的访问,同时,分片数据库进行集合计算需要在中间proxy服务器或应用程序服务器完成计算,因此,这样的交集计算带来计算负载压力是我们的系统完全不能承受的。所以这个方案可以被放弃。

高并发实战总结02_高并发_15

高并发实战总结02_高并发_16

高并发实战总结02_高并发_17

高并发实战总结02_高并发_18

高并发实战总结02_高并发_19

高并发实战总结02_高并发_20

三、高并发库存

高并发实战总结02_高并发_21

高并发实战总结02_高并发_22

高并发实战总结02_高并发_23

高并发实战总结02_高并发_24

高并发实战总结02_高并发_25

高并发实战总结02_高并发_26

高并发实战总结02_高并发_27

高并发实战总结02_高并发_28

高并发实战总结02_高并发_29

高并发实战总结02_高并发_30

高并发实战总结02_高并发_31

高并发实战总结02_高并发_32

高并发实战总结02_高并发_33

四、高并发场景系统隔离

高并发实战总结02_高并发_34

如果系统隔离性做得好,在受到大流量冲击时,只会影响被冲击的应用服务,即使某个业务因此崩溃,也不会影响到其他业务的正常运转。这就要求我们的架构要有能力隔离多个应用,并且能够隔离内外网流量,只有如此才能够保证系统的稳定。

拆分部署和物理隔离

高并发实战总结02_高并发_35

网关隔离和随时熔断

在这个改造方案中有两种网关:外网网关和内网网关。每个业务都拥有独立的外网网关(可根据需要调整)来对外网流量做限流。当瞬时流量超过系统承受能力时,网关会让超编的请求排队阻塞一会儿,等服务器 QPS 高峰过后才会放行,这个方式比起直接拒绝客户端请求来说,可以给用户更好的体验。

外网调用内网的接口必须通过内网网关。外网请求内网接口时,内网网关会对请求的来源系统和目标接口进行鉴权,注册授权过的外网服务只能访问对其授权过的内网接口,这样可以严格管理系统之间的接口调用。

高并发实战总结02_高并发_36

减少内网 API 互动

为了防止共享的数据被多个系统同时修改,我们会在活动期间把参与活动的数据和库存做推送,然后自动锁定,这样做可以防止其他业务和后台对数据做修改。若要禁售,则可以通过后台直接调用前台业务接口来操作;活动期间也可以添加新的商品到外网业务中,但只能增不能减。

高并发实战总结02_高并发_37

其实只有保证数据同步是单向的,才能取消相互锁定操作。我们可以规定所有库存决策由外网业务服务决定,后台对库存操作时必须经过外网业务决策后才能继续操作,这样的方式比锁定数据更加灵活。而外网交易后要向内网同步交易结果,只能通过队列方式推送到内网。

高并发实战总结02_高并发_38

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

dBFTbkVLMBge