快手联合阿里云构建容器混合云架构,轻松应对百万级秒杀

news2024/10/6 1:41:27

云布道师

在这里插入图片描述
摘要:快手电商在 2023 年某大 V 大促直播活动中,首次采用混合云弹性调度架构,应对大 V 百万级别秒杀峰值的计算资源需求。此次为【快手容器云 + 阿里云】的深度技术结合,在【快手电商直播秒杀】场景下的大规模首次应用。既解决了大 V 活动中短时间内快速弹性扩容、峰值结束后快速缩容的问题,又提高了系统应对峰值的快速伸缩、系统稳定性、高并发诉求,并能大大减少资源的持有成本。

快手 APP 是一款用户量极大的短视频应用。目前平均日活跃用户达3.76亿,平均月活跃用户达 6.73 亿,累计互关用户对数超过311 亿对,日均互动(包括点赞、评论和转发等)总量达 80 亿次。为了支撑如此庞大的用户规模、业务量级,快手建立了多个庞大的数据中心,海量的服务器集群来承载每日数亿用户的访问。在这里插入图片描述
快手技术面临的挑战,除了用户规模庞大带来的分布式架构的复杂性,更大的挑战来自于直播间秒杀场景,瞬时海量用户的抢购并发极高。直播是快手技术挑战最大的场景,而快手直播电商的秒杀活动为之最,具有并发量大、要求极高的特点。在秒杀活动期间,大量用户会同时访问快手的电商平台,对系统的并发处理能力提出了极高的要求。对于上亿粉丝的大 V 直播间秒杀期间,单件秒杀商品可能达到数百万件,单品最高秒杀请求达每秒百万次,下单交易链路系统同时支撑每秒百万次的并发。从下图可以看出,大 V 直播期间的秒杀尖峰与日常相比,提交订单接口的峰值流量是日常的 90 多倍。在这里插入图片描述
为了应对并发量极高的秒杀场景,快手采用了如下图所示的分布式系统架构、负载均衡技术、缓存技术、消息队列、服务限流排队、热点缓存优化等技术手段,以提高系统的并发处理能力和扩展性;在数据中心能力上,提高服务器的处理能力和可靠性,以确保系统的稳定性和可用性。此外,还加强对系统的监控和运维,及时发现和解决问题,确保系统的高可用性。同时,也不断优化系统的性能,提升用户体验和满意度。在这里插入图片描述
为了解决大促秒杀尖峰时刻的资源不足问题,快手建立了弹性容器云能力。快手的弹性容器云平台基于 Docker 建设的平台,它能够根据业务需求自动扩展和收缩容器实例,以满足高并发和大流量场景下的业务需求。通过使用弹性容器云,快手可以在大促秒杀期间快速扩展容器实例,以应对突然增加的流量和请求。当流量和请求减少时,弹性容器云又可以自动收缩容器实例,以节省资源成本。这种弹性伸缩能力可以帮助快手更好地应对业务的突发变化,提高系统的可靠性和可用性。弹性容器云为快手解决大促秒杀期间的弹性伸缩问题提供了有力的支持。图:全量使用自建 IDC 资源的电商业务架构
为了应对峰值,快手容器云平台构建了快手 IDC+阿里云的混合云架构,通过专线打通双方网络互联互通,利用阿里云丰富的产品能力和弹性优势进行业务“削峰填谷”。阿里云计算资源具备快手弹性和库存优势,为快手容器的弹性和扩展提供了强有力的支持,从而更好地应对峰值,满足高并发和大流量场景下的业务需求。
在扩展公有云资源的过程中,会基于时延和容灾域将相应公有云上不同可用区资源合入到快手内部不同可用区内,并优先将非高频访问缓存类的服务扩容到公有云机房,以优化业务性能。当发生单可用区的故障时,可通过可用区级的快速切流来完成业务恢复。同时为了加速业务的启动耗时,在公有云机房建立了镜像仓库缓存节点,结合 p2p 镜像下载机制,显著加速公有云上的容器实例的启动速度。图:启用弹性混合云资源的电商业务架构
其中的混合云调度平台,通过打通预算管理、容器资源运营及资源交付等多平台,实现了混合云弹性资源的快速交付,满足业务突发流量的算力资源诉求。整体过程中实现了如下平台能力:
● 弹性云服务器资源快速纳入容器集群:可实现 10 万核计算资源 30 分钟内接入快手容器云并达到业务可用状态;
● 快手自建机房与公有云机房资源通过容器集群统一纳管:提供一致化的算力交付,业务侧不感知底层资源差异;
● 智能化的资源调度策略:平台统一托管资源分配策略,突发流量所需要的业务扩容优先使用云上资源,活动结束缩容优先退还云上资源并自动下线主机;图:混合云弹性资源交付流程示意图
据了解,阿里云已经连续十来年保障了天猫双11的平稳运行,扛住了零点过后的流量峰值,阿里巴巴业务100%运行在阿里云上。那么,快手容器云+阿里云的组合模式是否能经受住另一个大促考验呢?
在2023年某大V大促活动中,快手电商为了应对大V秒杀峰值的资源计算需求,快手的弹性容器云快速利用以上打通阿里云的系统,进行了峰值资源的扩容,扩充总量级达到数万核CPU,将下单的峰值吞吐能力提高了1倍,秒杀期间实际峰值流量达到每秒百万次请求,系统各项指标稳定,系统100%可用,阿里云顺利通过了快手大促考验,可以平稳支撑快手顶流大V大促直播。下图中峰值的请求,即为通过阿里云弹性资源应对的峰值计算资源,解决了短时间内快速弹性扩容、峰值结束后快速缩容的问题,既提高了系统应对峰值的快速伸缩、系统稳定性、高并发诉求,又能大大减少资源的持有成本。在这里插入图片描述
通过【快手容器云 + 阿里云】的技术深度结合,在【快手电商直播秒杀】场景下的大规模首次应用,也论证和验证了快手弹性容器云能力在应对高峰弹性上的实际效果,也为快手未来借助阿里云解决资源成本优势、快速扩缩容提供了坚实的基础,为快手引领直播电商技术的趋势提供了有力的支持。
快手在直播电商技术方面的不断创新和引领,为行业的发展和变革也带来了重要的意义。快手电商直播,应用弹性容器云+阿里云的混合云模式应对秒杀,不仅对于快手自身具有重要意义,也为整个行业带来了积极的影响。它引领了直播电商技术的发展趋势,为其他企业提供了借鉴和启示。未来,随着技术的不断进步,快手将继续发挥技术优势,为用户带来更好的购物体验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1136742.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Calcite 解析层详解

1、概述 用户的操作请求经过服务层的接收和封装被传递给calcite-core模块。 其中第一站就是解析层,它的作用主要是对SQL语句进行语法解析。 在这个过程中,初始的SQL字符串会被转化为Calcite内部的语法解析节点,为进一步的语法校验和优化做…

建筑木模板厂家直销 915*1830*15mm酚醛面板规格

建筑木模板在建筑施工中扮演着重要的角色,它是支撑混凝土浇筑和保证建筑结构稳定性的关键材料。作为一家专业的建筑木模板厂家直销商,我们引以为傲地推出了915*1830*15mm酚醛面板规格的产品。 我们的建筑木模板采用高质量的酚醛树脂胶粘剂和优质桉木木材…

低代码平台是什么意思?低代码平台如何设计与实现?

低代码这个词,也许许多人都相当陌生。低代码的正式提出可以追溯到2014年,当时全球最具影响力的独立研究咨询公司Forrester,正式界定了低代码的概念。低代码指可通过最少的手工编程就能快速交付应用程序,并能快速设置和部署用于参与…

centos启动tomcat 并指定jdk 版本

在tomcat的catalina.sh文件手动设置JAVA_HOME变量即可 例如: 前提是文件存在 保存配置重新启动tomcat

短说通用版V4.1.0测试版发布|新增全新马甲模块等新功能

大家好, 我是给你们带来惊喜的运营小番茄。 本期更新为短说通用版 4.1.0测试版。 本次V4.1.0版本新增功能有: ①学院免费课程支持发布评价 ②商城子系统商品支持使用积分抵扣 ③新增管理后台查看和导出评论功能 ④支持设置积分类型展示排序功能 …

记录一次时序数据库的实战测试

0x1.前言 ​ 本文章仅用于信息安全防御技术分享,因用于其他用途而产生不良后果,作者不承担任何法律责任,请严格遵循中华人民共和国相关法律法规,禁止做一切违法犯罪行为。文中涉及漏洞均以提交至教育漏洞平台。 0x2.背景 ​ 在某…

99%的时间里使用的14个git命令

学习14个Git命令,因为你将会在99%的时间里使用它们 必须了解的命令整理 1,git init 初始化一个新的Git仓库。 这将在当前目录中创建一个名为".git"的子目录,Git会将所有仓库的元数据存储在其中。 2,git clone 克隆…

【unity3D】Rect Transform组件

💗 未来的游戏开发程序媛,现在的努力学习菜鸡 💦本专栏是我关于游戏开发的学习笔记 🈶本篇是unity的Rect Transform组件 Rect Transform组件 基础知识详细介绍补充 基础知识 Rect Transform是Unity中的一个UI组件,用于…

商淘云:如何选择开源B2B2C多用户商城系统

选择开源B2B2C多用户商城系统是一个关键的决策,因为它将直接影响到您的电子商务平台的性能、功能和用户体验。以下是一些指导原则,可帮助您做出明智的选择。 首先,考虑系统的稳定性和安全性 选择一个经过广泛测试和验证的开源系统&#xff0…

node读取文件和获取路径

01.fs模块-读写文件 模块:类似插件,封装了方法和属性供我们使用 fs 模块:封装了与本机文件系统进行交互的,方法和属性 fs 模块使用语法如下:【fs模块为node自带,不需要手动安装】 加载 fs 模块&#xff0…

nginx解决vue项目开发跨域问题

1、为了模拟跨域的开发情况,本地可以起一个后台服务 const http require(http);const PORT 3200;// 创建一个 http 服务 const server http.createServer((request, response) > {response.end("hello world"); });// 启动服务, 监听端口 server.l…

Centos安装mongodb

mongodb官网 下载MongoDB cd /optwget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.2.tgztar -xf mongodb-linux-x86_64-rhel70-4.4.2.tgz -C /usr/local/cd /usr/local/mv mongodb-linux-x86_64-rhel70-4.4.2 mongodb部署Mongodb 2.1. 创建目录 cd mo…

木马文件检测系统 毕业设计 JAVA+Vue+SpringBoot+MySQL

项目编号:S041,源码已在 Bilibili 中上架,需要的朋友请自行下载。 https://gf.bilibili.com/item/detail/1104375029为了帮助小白入门 Java,博主录制了本项目配套的《项目手把手启动教程》,希望能给同学们带来帮助。 …

Python 自带小型数据库详解

DBM DBM(DataBase Manager)是一种文件系统,专门用于键值对的存储,最初是在 Unix 平台实现,现在其它平台也可以用。对于 KV 模型,DBM 提供了一个轻量级、高效的存储解决方案。 总的来说,DBM 具有…

借助软文,让品牌形象深入人心

品牌形象有多重要?独特的品牌形象能够提升市场竞争力,建立消费者的品牌忠诚度,就像蜜雪冰城的品牌形象就是实惠好喝,而软文作为一种推广手段,就能帮助企业塑造品牌形象,引起读者共鸣,今天媒介盒…

【反射】Java反射机制 -- 常用构造器与方法

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ Java反射 Java反射1. 获取class对象的三种方式…

Linux - 进程的优先级 和 如何使用优先级调度进程

理解linux 当中如何做到 把一个PCB 放到多个 数据结构当中 在Linux 当中,一个进程的 PCB 不会仅仅值存在一个 数据结构当中,他既可以在 某一个队列当中,又可以在 一个 多叉树当中。 队列比如 cpu 的 运行队列,键盘的阻塞队列等等…

性能测试用例和测试结果

性能测试用例和测试结果 一 核心业务功能的TPS测试1.1 登录接口测试用例1.2 进入首页接口测试用例1.3 添加购物车接口测试用例1.4 结算和下订单接口测试用例1.5 系统资源使用率1.6 单接口测试中一个测试的各个成员接口要单独做性能统计 二 业务流程(多接口组合&…

word行内插入mathtype 公式后行距变大解决办法

现象 word行内插入mathtype 公式后行距变大 解决方法 选中要进行操作的那些行,依次单击菜单命令“格式→段落”,打开“段落”对话框;单击“缩进和间距”选项卡,将间距的“段前”和“段后”都调整为“0行”;将“如果…

中国密码算法与NIST标准对比

1. 引言 NIST定义AES为标准的对称密钥加密算法。但NIST被指出可能在加密算法中添加NSA后门。为此,在中国,ShāngM (SM) 系列密码算法,作为TLS 1.3集成和无线认证的备选方案: SM2:定义了认证(签名&#xf…