亿级流量架构理论+秒杀实战系列(三)

简介: 亿级流量架构理论+秒杀实战系列(三)

亿级用户的请求分层过滤模型

请求处理模型

直筒型

直筒型请求处理模型,指的是用户请求 1:1 的洞穿到db层,如下图所示。在比较简单的业务中,才会采用这个模型。

传统的低并发、低性能、低可用项目。

直筒型请求处理模型的适用场景:

企业级应用。

特点:

1. 用户规模较小

2. 请求峰值和平均值相差不大

3. 请求峰值不会超过数据层的处理能力

漏斗型

漏斗型业务,指的是,用户的请求,从客户端到 db层,层层递减,递减的程度视业务而定。例如当 10w 人去抢100个物品时,db层的请求在个位数量级 1000以内,这就是比较理想的模型。

693e423dc198cf1cf14d15f9d94af655.png

漏斗型请求处理模型的适用场景:

互联网应用(如秒杀)

特点:

1. 用户规模大

2. 请求峰值和平均值相差巨大

3. 请求峰值远远超出最后一层(数据层)的处理能力

漏斗模型中的请求分层过滤

漏斗型请求处理模型的核心策略,对请求进行分层过滤。

而针对漏斗型请求处理模型(如秒杀场景)一 种核心策略,就是对请求进行分层过滤,从而过滤掉一些无效的请求。

a4fbdae6d5828ac70368fca226ad6086.png

案例:秒杀系统的分层过滤

比如,在秒杀系统中,请求分别经过 CDN、Nginx(商品详情)、微服务(如seckill)和数据库这几层,那么:

1 大部分数据和流量在用户浏览器或者 CDN上获取,这一层可以拦截大部分静态资源的读取;

2、经过第二层 Nginx(商品详情)时,尽量得走 Nginx Cache,过滤一些可以直接访问Nginx缓存的 请求;经过第二层 Nginx(商品详情)时,也可以进行流控,还可以进行黑名单过滤,拦截掉一些无效的流量;

3、再到服务层,进入微服务网关时,可以做用户的授权检验,对系统做好保护和限流,这样数据量和请求就进一步减少;

4、业务层,还可以进行数据的有效性、一致性过滤,这里又减少了一些流量。这样就像漏斗一样,尽量把数据量和请求量一层一层地过滤和减少了。

分层过滤的核心思想是:在不同的层次尽可能地过滤掉无效请求,让“漏斗”最末端的才是有效 请求。而要达到这种效果,我们就必须对数据做分层的校验。

写入操作的流量削峰方案(降级方案)

削峰从本质上来说,就是更多地延缓用户请求,以及层层过滤用户的访问需求,遵从【最后落地到数据 库的请求数要尽量少】的原则。

同步的直接调用转换成异步的间接推送

要对流量进行削峰,最容易想到的解决方案就是用消息队列来缓冲瞬时流量,把同步的直接调用转换成 异步的间接推送,中间通过一个队列在一端承接瞬时的流量洪峰,在另一端平滑地将消息推送出去。

消息队列中间件主要解决应用耦合、异步消息、流量削峰等问题。常用的消息队列系统有ActiveMQ、 RabbitMQ、ZeroMQ、Kafka、Me'taMQ和RocketMQ等。

在这里,消息队列就像是水库一样,拦截上游的洪水,削减进下游河道的洪峰流量,从而达到减免洪水灾害的目的。

分层限流:防止系统雪崩的无奈策略

分层限流:接入层、服务层 限流,根据各层的能力,对系统进行保护
相关文章
|
9天前
|
机器学习/深度学习 设计模式 API
Python 高级编程与实战:构建微服务架构
本文深入探讨了 Python 中的微服务架构,介绍了 Flask、FastAPI 和 Nameko 三个常用框架,并通过实战项目帮助读者掌握这些技术。每个框架都提供了构建微服务的示例代码,包括简单的 API 接口实现。通过学习本文,读者将能够使用 Python 构建高效、独立的微服务。
|
9天前
|
设计模式 机器学习/深度学习 前端开发
Python 高级编程与实战:深入理解设计模式与软件架构
本文深入探讨了Python中的设计模式与软件架构,涵盖单例、工厂、观察者模式及MVC、微服务架构,并通过实战项目如插件系统和Web应用帮助读者掌握这些技术。文章提供了代码示例,便于理解和实践。最后推荐了进一步学习的资源,助力提升Python编程技能。
|
17天前
|
Android开发 开发者 Kotlin
Android实战经验之Kotlin中快速实现MVI架构
MVI架构通过单向数据流和不可变状态,提供了一种清晰、可预测的状态管理方式。在Kotlin中实现MVI架构,不仅提高了代码的可维护性和可测试性,还能更好地应对复杂的UI交互和状态管理。通过本文的介绍,希望开发者能够掌握MVI架构的核心思想,并在实际项目中灵活应用。
42 8
|
23天前
|
JavaScript 前端开发 Java
Jeesite5:Star24k,Spring Boot 3.3+Vue3实战开源项目,架构深度拆解!让企业级项目开发效率提升300%的秘密武器
Jeesite5 是一个基于 Spring Boot 3.3 和 Vue3 的企业级快速开发平台,集成了众多优秀开源项目,如 MyBatis Plus、Bootstrap、JQuery 等。它提供了模块化设计、权限管理、多数据库支持、代码生成器和国际化等功能,极大地提高了企业级项目的开发效率。Jeesite5 广泛应用于企业管理系统、电商平台、客户关系管理和知识管理等领域。通过其强大的功能和灵活性,Jeesite5 成为了企业级开发的首选框架之一。访问 [Gitee 页面](https://gitee.com/thinkgem/jeesite5) 获取更多信息。
Jeesite5:Star24k,Spring Boot 3.3+Vue3实战开源项目,架构深度拆解!让企业级项目开发效率提升300%的秘密武器
|
2月前
|
监控 安全 Cloud Native
海外泼天流量丨浅谈全球化技术架构
全球化是对技术架构的终极挑战,面临的不仅仅是技术的问题,而是包含了经济、文化等多因素差异的用户关系问题。积极借助遍布全球的云计算基础设施和云原生的架构设计原则,将能更加高效的构建高可用的全球化技术架构,支持全球业务的持续增长。
129 29
|
2月前
|
安全 Cloud Native 容灾
海外泼天流量|浅谈全球化技术架构
本文对海外泼天流量现状做了快速整理,旨在抛砖引玉,促进国内企业在出海过程中,交流如何构建全球化技术架构的落地经验,相信会有越来越多资深人士分享更深层次的实践。
106 14
|
2月前
|
Java 网络安全 开发工具
Git进阶笔记系列(01)Git核心架构原理 | 常用命令实战集合
通过本文,读者可以深入了解Git的核心概念和实际操作技巧,提升版本管理能力。
|
3月前
|
存储 JavaScript 开发工具
基于HarmonyOS 5.0(NEXT)与SpringCloud架构的跨平台应用开发与服务集成研究【实战】
本次的.HarmonyOS Next ,ArkTS语言,HarmonyOS的元服务和DevEco Studio 开发工具,为开发者提供了构建现代化、轻量化、高性能应用的便捷方式。这些技术和工具将帮助开发者更好地适应未来的智能设备和服务提供方式。
94 8
基于HarmonyOS 5.0(NEXT)与SpringCloud架构的跨平台应用开发与服务集成研究【实战】
|
3月前
|
弹性计算 Java 数据库
Web应用上云经典架构实战
本课程详细介绍了Web应用上云的经典架构实战,涵盖前期准备、配置ALB、创建服务器组和监听、验证ECS公网能力、环境配置(JDK、Maven、Node、Git)、下载并运行若依框架、操作第二台ECS以及验证高可用性。通过具体步骤和命令,帮助学员快速掌握云上部署的全流程。
|
4月前
|
消息中间件 Java Kafka
实时数仓Kappa架构:从入门到实战
【11月更文挑战第24天】随着大数据技术的不断发展,企业对实时数据处理和分析的需求日益增长。实时数仓(Real-Time Data Warehouse, RTDW)应运而生,其中Kappa架构作为一种简化的数据处理架构,通过统一的流处理框架,解决了传统Lambda架构中批处理和实时处理的复杂性。本文将深入探讨Kappa架构的历史背景、业务场景、功能点、优缺点、解决的问题以及底层原理,并详细介绍如何使用Java语言快速搭建一套实时数仓。
570 4

热门文章

最新文章