受疫情影响,多数企业员工目前无法回到写字楼办公,学生推迟开学,稳定高效的远程办公和直播授课成为 2020 年的开年刚需。腾讯从 1 月 24 日开始向全国免费开放可支持 300 人同时在线会议的“腾讯会议”,直至疫情结束。央视新闻联播对此也给予了报道。
发布不久的腾讯会议瞬间成为了一款国民会议软件,用户呈几何级爆发涌入,从 1 月 29 日开始到 2 月 6 日,腾讯会议每天都在进行资源扩容,日均扩容云主机接近 1.5 万台,8 天总共扩容超过 10 万台云主机,共涉及超百万核的计算资源投入,腾讯会议在 2 月 10 日当天扛住了近 100 倍于日常的会议数量。
那么,腾讯会议是如何做到在扩容期间用户无感知,依然能够高清流畅无卡顿的进行会议呢?那不得不提到一大神兵——腾讯云 Redis 数据库(TencentDB for Reids)。在请求数暴增的情况下,作为会议列表缓存、会议信息存储的 Redis 数据库也进行了快速扩展,腾讯云数据库 Redis 通过提供大规模的集群产品,为腾讯会议提供稳定的高并发低延迟的缓存服务,操作起来也极为简便,腾讯会议的运维人员仅需要在控制台点击一个按钮,即可操作完成 100 倍业务规格增长的弹性扩展。
千万 QPS 的 Redis 单集群访问性能
为应对海量用户请求,在百万核计算业务的架构中,保障业务规模快速增长的同时能持续提供稳定的性能和快速响应,引入缓存系统是一个行之有效的方法。
在大规模的用户场景下,腾讯会议选择使用腾讯云 Redis 作为缓存服务,将预约会议的内容、参会人员信息等存储到 Redis,保障了用户在预定、发起、参与会议等过程中系统能快速响应。腾讯云集群架构的 Redis 服务,仅单集群可提供最大 4TB 存储容量和 10 万-1000 万级别的并发访问性能,并且能保障在 99.99% 的水位线内提供 1ms 响应时延。
30 分钟内不停机无损扩容数十倍
在 8 天时间内腾讯会议完成了 100 万核云服务器扩展的同时,Redis 集群仅在半小时以内就高效完成了数十倍规模的扩容,单集群的扩容流程后台处理时间不超过 30 分钟,同时保持了 100% 的系统可用性,在整个资源扩展过程中,腾讯会议服务始终保持着大规模的在线运行,海量用户无感知,依然能够高清流畅无卡顿的进行会议。
值得骄傲的是,腾讯云 Redis 是国内唯一一款具备无损扩容能力的 Redis 数据库产品。
那么,是什么样的底层设计使得 Redis 服务能够进行如此平滑的无损弹性扩展呢?
腾讯云 Redis 自动化的资源管理和装箱系统保障了资源的快速分配, 同时提供了标准化的控制台界面和 API 接口,使得运维人员可以快速进行资源扩展,仅需在控制台点击一个按钮,即可操作完成 100 倍业务规格增长的弹性扩展。
为更好的为用户提供服务,腾讯云数据库 Redis 在国内率先实现了实时平滑无损弹性扩容。目前大多数云厂商的 Redis 数据库在跨机扩容时候会连接断开和 1 分钟内的业务只读,在使用自建以及其他云厂商提供的 Redis 服务时,企业只能依赖业务层实现平滑扩展,或者停服来维护扩展,这对需要提供7*24 小时不间断客户服务的企业是致命的。
要实现无损扩容有两大核心难题需要解决,第一个是要解决社区迁移工具迁移大 Key 阻塞系统访问,甚至是宕机的问题 。腾讯云团队通过自研的数据搬迁工具不但解决了卡顿的问题,数据搬迁的速度也得到了成倍的提升。其次需要提供数据搬运过程中正确的标记数据状态,搬迁后可以重新路由难题,腾讯云 Redis 通过自研 Proxy 定期刷新以及响应路由重定向命令解决了数据路由的难题。
腾讯云 Redis 无损扩容示意图
经过多年的快速发展,腾讯云 Redis 已经在电商、游戏等行业服务了众多用户,为数万家用户提供了安全稳定的云服务。拿某电商客户来说,自上线以来,迅速积累亿级用户,UGC 社区业务和 B2C 电商业务均发展迅猛,高效提升用户访问体验和购物体验尤为重要。腾讯云的云缓存 Redis 服务无需安装,一键使用,自动扩容,轻松处理并发海量数据,专业团队全程监控。有效帮助该客户应对业务规模的爆发增长以及各类大促活动的顺利举行。