王义成:阿里云Redis服务助力游戏行业发展

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 2018数据库直播大讲堂峰会Redis专场,来自阿里云高级产品专家王义成带来Redis助力游戏行业的相关演讲。主要从传统数据库的压力开始谈起,着重介绍了阿里云Redis产品架构以及不同的版本,接着对Redis服务能力进行了说明,最后对游戏、视频行业的应用作了介绍。

2018数据库直播大讲堂峰会Redis专场,来自阿里云高级产品专家王义成带来Redis助力游戏行业的相关演讲。主要从传统数据库的压力开始谈起,着重介绍了阿里云Redis产品架构以及不同的版本,接着对Redis服务能力进行了说明,最后对游戏、视频行业的应用作了介绍。
直播视频:https://yq.aliyun.com/video/play/1312
PDF下载:https://yq.aliyun.com/download/2449
以下是精彩视频内容整理:

传统数据库的压力

传统数据库服务模式复杂,账单交易数据存储在OLTP SQL数据库,服务关系图谱数据存储到NoSQL数据库,经常访问的数据存储在Key-Value缓存数据库,沉淀数据存储在OLAP数据仓库引擎,经过OLAP小型数仓会做一些在线实时处理分析,还会对长久性数据直接存储在大数据存储平台进行离线大数据分析,传统数据库服务模式中,每款数据库都是一个平台,一层一层推到另一个数据库引擎中。数据库整体演化过程如下:
企业发展之初,系统简易,只需要几个单点运行的数据库,只有SQL或NoSQL,此阶段只需要一个兼职DBA就可以搞定;

1


初现规模,随着数据库业务发展,传统数据库压力越来越大,系统架构逐渐复杂,多套HA集群数据库开始使用监控系统,一些业务需要Key-Value超缓存数据,SQL和NoSQL进行逐步分离,对于不同的业务模块开始拆分,对于NoSQL等其它类型数据库,我们会将其存储到标准的配置模式中,这是传统数据库发展一段之后演变的结果。

2


发展上升期,游戏、视频直播等行业需要多个项目,项目因而逐渐作拆分,每个项目存储不同类项的数据。每个业务会有一套单独数据库,架构相对比较复杂,DBA要求独挡一面,需要对每个项目部署、备份、优化以及技术和架构设计,因此需要一名专业顶尖的DBA帮助实现业务系统;

3


业务突破期,需要OLAP、离线分析等多种混合使用,业务更加复杂,还要做高速扩展,对稳定性、高性能方面提出很高要求,业务模式分为多项目,针对实时数据库仓储搭建大数据海量离线分析和实时BI分析平台,我们需要一个高质量的DBA团队,熟悉多种SQL运行引擎。

阿里云产品架构

4


阿里云已经构建了最全产品形态如图, 产品架构版本分为标准版、集群版和读写分离版。标准版是原生的Redis模式,适配于协议完全兼容,但Redis对于线程处理有本质限制,所以标准版理论QPS为8~10W;集群版有效的扩展写能力,提供多节点模式,把多节点组装成一个域名包装给用户,使集群版性能和容量提升;读写分离版有效扩展读能力,支持不同读节点模式帮助用户扩展整个集群读能力。
另外在存储模式上,我们构建了比较先进的产品体系,不同集群版本支持单副本、双副本不同模式,单副本适用于纯缓存业务要求,双副本帮助用户构建持久化,提供服务可靠性同时保证数据可靠性。读写分离版提供多副本版本,提供多重存储模式+读写分离配置。

标准版-单副本

5


在标准版单副本中,用户可以拿到一个产品域名写相应服务,通过SLB路由到底层真实数据节点,对于单副本模式只有单独进程,如果出现主机级别宕机,就会立即启动故障后拉起,保证30S内服务马上启动,底层为HA故障逻辑,实时探测主节点Redis进程是否真实有效,如果失效会立即切换,拉起空进程保证服务高可靠性。
标准版单副本适用协议敏感的场景,支持任何原生Redis协议,7W QPS的应用可以使用此版本,服务模式为纯缓存模式,兼容所有开源客户端。

标准版-双副本

6


标准版双副本模式与单副本模式主要区别为主备节点模式,主节点提供服务时,备节点实时与主节点同步数据,主备节点都会提供持久化功能,如果发生故障,主节点可以切换到备节点。
双副本适用于协议敏感、纯缓存,且业务宕机后,后端存储压力无法接受Redis宕机、缓存失效等情况。性能需求在8~10W QPS可以使用双副本,兼容所有开源客户端。

集群版-双副本

7


集群版双副本同样是暴露整体域名对用户访问,底层架构通过多个节点服务能力的叠加把数据库能力对外提升。可以看到,域名以下SLB、Proxy、底层节点、Configserver都整体包含在阿里云集群版架构服务之下,我们提供Proxy基本代理能力,Configserver存储数据分片具体模式,把数据节点分发到不同的DBnode节点中,从而达到整体性能提升。
集群版双副本适用数据量大、性能要求高的场景,性能要求达到100W QPS,访问方式上兼容所有开源客户端,提供单分片两副本存储,以及16~512G不同规格的服务。

集群版-单副本

8


集群版单副本与双副本只在DBnode节点层面有所区别,单副本如果宕机,业务会马上做相应切换,容易丢掉业务数据。单副本适用数据量大、性能要求比较高的场景,性能要求在100W QPS可使用,兼容所有开源客户端,单分片单副本数据缓存,提供16~512G规格服务。

读写分离

9


读写分离架构如图,用户通过ECS集群访问,通过SLB连接,底层Proxy会做数据路由,将写节点路由到主节点模式上去,从服务路由到相应的读节点上去,实现读写分离模式。读写分离适用读多写少、超大key、不要求强一致场景。它的优势是对用户透明,能力可线性扩展,支持所有指令。潜在问题是如果一主多从级联复制,会出现数据ms级别不一致问题。

服务能力

10


我们真正为用户提供了相应的整体用户解决方案,阿里云Redis与其它开源版本的区别主要体现在以下几个层面:
  1. A lot Binlog。开源Redis仅支持全量同步和全量备份,而阿里Redis断点续传、流式备份等增量变换模式。
  2. 安全加密。开源Redis仅支持密码访问,安全隔离差。阿里Redis有白名单和SSL加密。
  3. 集群兼容。开源Redis兼容性有限,需要指定相应的客户端,运维复杂。阿里Redis兼容性高,无缝扩容。
  4. 热升级。开源Redis在业务变更和业务中断时只能重启升级。阿里Redis可以进行Proxy热升级和Redis热升级。
  5. 多项优化。开源Redis存在不稳定性,雪崩和IO毛刺会经常遇见。阿里Redis提供短连接优化和IO优化。
    此外,阿里Redis在产品功能层面服务提升分为四大块:
  • 可靠性:提供双机热备模式、提供持久化模式、同城容灾和异地容灾。
  • 安全性:打通VPC网络,支持强密码认证,支持Ddos攻击防护和SSL加密。
  • 易用性:提供性能监控和阈值报警,还有高频操作验证和数据管理。
  • 性能:支持集群版和高性能硬件,基于Binlog模式复制,免除pfork。

独特的容灾能力

11


阿里云在服务能力层面提供独特的容灾能力,我们可以提供两机房跨region服务,内部使用BLS组件实时抽取源库端增量日志,经过流复制模式传输到异端机房,再实时写到另一个机房Redis中,作远程异地同步。
这适用于可用性要求极高、每个单元都能承担流量、允许N-1个机房断电的多活或双活场景,拓扑模式为服务单元化+数据中心模式,在内核层面作单元数据生产和消费。

行业特性

游戏

游戏行业整体服务模式分为四个:

  • 滚服:随时秒开服,一天多服。阿里云Redis支持基于一个时间点瞬间帮助用户克隆一个实例出来,可能分钟级别就会启动一个Redis。
  • 灌服:疯狂灌人,配置逐步增大。阿里云Redis提供从标准版配置一键升级到集群版配置。
  • 合服:业务收尾,多服合并。阿里云Redis提供把多个服务迁入到一个数据库中去,再进行实时降级。
  • 闪回:快速回滚,阿里云Redis提供基于时间点或局部快速恢复到原来某一时间点。
    目前,阿里云上的游戏客户遍布很多,包括陌陌游戏、畅游等,总结游戏行业解决方案主要有三点:克隆实例、数据校验,数据归档快速回滚和云上云下数据打通。

视频直播

对于快速瞬间用户涌入、大量同时在线模式非常适合使用Redis,传统视频直播类行业有很多信息都需要存储在Redis中,比如朋友关系、送礼物和评论,或者抢红包类的好友互动,都大量的使用Redis,视频直播行业的Redis数据库操作远远大于关系型数据库,该行业的稳定性高于一切,内存可能很小但QPS很高,连接数要求较大。
针对视频直播行业的特性,阿里云也做了相应的解决方案。包括连接数放开,阿里云将Redis连接数普调至1~2W;带宽单独售卖,集群支持热点key,会在一定时间内捕捉key访问次数是否大于阈值,帮助缓解单个节点被打爆情况;采用读写分离模式缓解对于某个房间过热或某个明星直播产生的问题。
除了游戏和视频直播,我们也在其他民生领域进行了探索,并给出解决方案。比如新闻、交通、金融等。
本文由云栖志愿小组毛鹤整理,编辑百见

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
1月前
|
Arthas 弹性计算 运维
阿里云ECS监控服务
阿里云ECS监控服务
403 2
|
1月前
|
监控 网络协议 API
阿里云BssOpenAPI是一个基于阿里云开放API的服务
【2月更文挑战第24天】阿里云BssOpenAPI是一个基于阿里云开放API的服务
136 6
|
1月前
|
自然语言处理
阿里云百炼大模型服务--企业知识检索问答指南
阿里云百炼提供的企业知识检索问答应用可以帮助大家实现让大模型瞬间“开挂”的技能。结合上传的知识数据,大模型识别解析学习文档内容,最终给出生成式回复。我们在通义千问-Turbo/Max大模型基础上,将文件上传、读取、切片、向量化等过程都开发好预置在应用中,实现开箱即用,更能满足您的日常需求。
|
1天前
|
存储 开发工具 对象存储
Javaweb之SpringBootWeb案例之阿里云OSS服务入门的详细解析
Javaweb之SpringBootWeb案例之阿里云OSS服务入门的详细解析
6 0
|
11天前
|
网络协议 Java 物联网
阿里云服务器上搭建 MQTT服务
阿里云服务器上搭建 MQTT服务
|
11天前
|
域名解析 网络协议 应用服务中间件
阿里云服务器配置免费https服务
阿里云服务器配置免费https服务
|
25天前
|
缓存 NoSQL Shell
【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(持久化功能分析)
【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(持久化功能分析)
35 0
|
25天前
|
存储 缓存 NoSQL
【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(集群功能分析)(一)
【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(集群功能分析)
61 0
|
1月前
|
NoSQL 关系型数据库 数据库
数据传输服务DTS(Data Transmission Service)是阿里云提供的实时数据流服务
【2月更文挑战第29天】数据传输服务DTS(Data Transmission Service)是阿里云提供的实时数据流服务
18 5
|
1月前
|
NoSQL 关系型数据库 MySQL
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
206 0