MQTT在游戏运营发行中的实践

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 在游戏发布运营平台中,使用阿里云微消息队列MQTT产品可以满足运营平台与游戏客户端间的数据推送服务场景,即既保证了百万级连接,又实现了资源占用少,也能做到各种复杂的消息数据发布订阅管控。

前言

在游戏生态中,主要包含游戏的研发方以及运营发行方。一款游戏的运行,分为研发和运营两个阶段。研发的主体有个人、独立工作室、游戏研发公司等;

游戏的研发主体专注于游戏内容的研发,对游戏的发行及运营往往在人力、财力上投入不足,促使游戏发行及运营业务应运而生,产生了独立的运营发行方。目前市场上很多大型游戏厂商将自己的发行及运营能力打包给运营发行方。另外还有一些游戏的分发渠道方,依托于自己的流量优势,也提供仅针对本渠道的联合运营服务。
image.png
上图中有关的交互的部分:

l 游戏本身的操控交互是在游戏客户端与游戏服务端间进行的,大部分会采用Socket长链接的方式进行通信。
l 游戏客户端与游戏发行方平台的交互,包括登录,支付等等,这些由游戏玩家主动请求的会采用http的方式进行链接通信。

这两部分的交互选型相对固定。
但在运营发行方中关于运营消息以及广告推送等场景,例如各类服务器运维升级等跑马灯信息;账号踢下线信息;悬浮窗广告;普通消息推送等等服务更多是由游戏的运营发行方主动推送的。在百万级游戏客户的情况下,如何选择更适合的交互方式是一件头痛的事情。

我们在本章中探讨如何更好地选择运营发行消息的技术实现。

运营发行方推送的特点与要求

1.触达用户多:一款成功的游戏总客户数经常超百万千万。同时在线数高。
2.消息的时效性不同:有些消息是在某时间段内都生效的(例如主游戏服运维升级通知),无论客户当前的状态是否在线,如果当前客户在线那么就立刻收到,离线的客户在下次进入游戏时也会收到相应的消息。有些消息是对于当前在线的客户(例如账号踢下线信息)才有意义。
3.精准的群发性诉求:推送的消息都是对于具有某类特征的客户群体进行广播(例如不同的广告对应不同等级的游戏玩家)
4.连接的轻量级消耗:这类数据的交互对比游戏本身操控来说,频率较低,所以游戏客户端与广告运营等数据推送的流量占用的客户端运行资源尽可能的少。
5. SDK依赖资源简洁:在游戏领域里,由研发团队会产生游戏母包,而运营发行方会在母包的基础上嵌入运营所需要的SDK包,例如支付功能, 数据推送功能;那么对于推送功能本身所依赖的资源包就越小越好了。

备选的技术方案分析

1. http轮询方案:
优点:
游戏客户端依赖最少,实现方便。
缺点:
无效轮询占比高:多个客户端,多种类的轮询多,鉴于本类消息的频率不高,那么绝大部分轮询都是没有实际业务意义的。
运营端实现复杂:需要使用额外的代码逻辑专门维护已读取状态。
资源占用高:周边配套的调用链,日志信息,并发处理能力这些推高了资源占用情况。

2. Socket方案:
优点:
游戏客户端依赖比较少,实现方便。
缺点:
连接维护:运营方会有不同种类型的应用划分(例如广告可能是单独的应用,系统管理也会是另一单独的应用),如果都需要推送,那么就必须有不同的socket连接到不同类型的应用;这样游戏客户端的连接就会增多,从而占用比较多的资源。
运营端实现复杂:需要使用额外的代码逻辑专门维护订阅推送类型,在推送过程中需要代码实现过滤,精准投递到目标群体; 为了保证推送的质量(到达与否),需要额外记录推送状态;对于推送数据的时效需要额外的控制,有些过期的消息(例如服务运维时间通知)。

3. KAFKA方案:
优点:
接入简单:成熟的消息中间件,支持各种实现语言。只需要对接Kafka 节点本身,不需要直接与发行方的应用进行连接,天然解藕。
功能强大: 推送数据的状态维护,存储等都可以借用Kafka的来提供。
缺点:
客户端连接数支持不足,无法通过简单的集群来支持数量众多的游戏玩家(客户端)。

4. MQTT方案:
优点:
接入简单,MQTT的协议非常简洁,支持各种实现语言。
支持各种订阅关系。
支持p2p消息。
支持各种消息触达的QoS质量。
可观测客户端的连接情况。
支持百万级的连接。
缺点:
MQTT技术当前阶段不如其它方案大众。

MQTT技术方案

通过对比,上面的三种方案, MQTT方案是非常符合作为游戏的运营发行方与游戏客户端进行推送数据的交互场景。那么我们来看看这个技术的设计原则。

1、轻量级与高效的微消息,MQTT协议精简,消息头特别简单;
2、基于发布/订阅(Pub/Sub)通讯模式,可以进行双向通信;
3、支持topic进行消息存储落盘;
4、支持订阅关系设定;支持p2p的模式与广播模式;
5、支持百万级别的连接设备;
6、提供消息服务质量管理;
7、适用于低带宽、高延迟、不稳定的网络;
image.png
这里,我们比较一下阿里云的产品微消息队列MQTT与开源MQTT。
image.png

结语

在游戏发布运营平台中,使用阿里云微消息队列MQTT产品可以满足运营平台与游戏客户端间的数据推送服务场景,即既保证了百万级连接,又实现了资源占用少,也能做到各种复杂的消息数据发布订阅管控。
image.png

【更多精彩】

1.中间件爆款一折起,还有阿里巴巴十年最佳实践深度解密,点击马上了解https://www.aliyun.com/activity/daily/commercial?spm=5176.20960838.0.0.6a54305etoEn4D

2.【填问卷领淘公仔】点击马上填写问卷:
https://survey.aliyun.com/apps/zhiliao/YmW95Gk8bU

【加入行业实战交流钉钉群】

阿里云专门成立了“互联网架构升级实战课”钉钉群,每周邀请一位阿里云专家在群内进行行业最佳实践直播,每天分享行业前沿干货,钉钉扫码马上加入。
image.png

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
1月前
|
存储 算法 安全
NFT元宇宙盲盒项目系统开发|模式详情|方案设计
由于数据库的多个副本存储在计算机上,因此破解数据库或伪造数据极其困难。
|
7月前
|
自然语言处理 Python
交易所开发海外国际多语言(稳定版)丨交易所系统开发(方案及逻辑)丨 交易所系统源码功能
def execute_交易(self): total_价值 = self.amount * self.price self.buyer.支出(total_价值) self.seller.收入(total_价值) print(f"交易完成:买家 {self.buyer.账户}
|
4月前
|
视频直播 UED 开发者
开发网络拍卖直播平台,如何打造一个具有特色在线拍卖平台
随着互联网的快速发展,线上拍卖平台日益受到人们的欢迎。小编参考“东莞梦幻网络科技”拍卖直播系统如何打造一个具有特色、充满创新且增值服务丰富的在线拍卖平台,解决许多开发者关注的问题。本文将围绕这个主题,提出一些具体的建议。
|
7月前
|
敏捷开发 安全
乐S支付钱包模式系统开发技术丨成熟逻辑开发搭建
乐S支付钱包模式系统开发技术丨成熟逻辑开发搭建
|
8月前
|
移动开发 自然语言处理 安全
搭建开发拍卖直播平台源码优势,分享商用可运营源码
如今,在互联网时代,拍卖直播平台已经成为电商领域的热门趋势。为了满足有意进入这一领域的企业,东莞梦幻网络科技推出了他们的“拍卖直播系统”成品源码解决方案。
体育赛事直播系统源码搭建平台四种用户获利方式
通过“东莞梦幻网络科技”体育直播源码搭建的赛事直播平台,有哪些功能帮助打造出完整的社群环境来吸引许多优质创作者,不仅让创作者能够获利,也让自家平台的素材内容多元且丰富,吸引更多用户和创作者,形成一个良好的正循环。
|
8月前
|
存储 测试技术 区块链
元宇宙游戏链游系统开发(稳定版)丨nft/dapp游戏链游系统开发详情规则及源码案例
  元宇宙链游戏(Metaverse blockchain game)是基于区块链技术和元宇宙概念开发的一类游戏。
游戏直播软件源码开发搭建,平台获利方法有哪些?
在互联网新时代,随着直播技术成熟,泛娱乐产业备受市场追捧,当中娱乐游戏直播平台在这一行业中处于核心关注热点。即使由于短视频的兴起,其增长速度显著下降,但是其吸金实力始终不可小嘘。
|
Web App开发 安全 架构师
网易云信开源会议和低延时直播两大项目:对开发者完全开放、支持修改后商用
“我始终相信开源会产生裂变。当越来越多的开发者参与到开源项目中,这套代码、组件就不仅仅只是一套代码,它会变成我们未来的生产力和竞争力。”网易智企低延时直播开源负责人、网易云信流媒体首席架构师吴桐说道。
172 0
网易云信开源会议和低延时直播两大项目:对开发者完全开放、支持修改后商用
|
编解码 移动开发 测试技术
EMAS专家测试服务winback九江银行测试项目! —— 产品力+好服务赢竞争
阿里云EMAS专家测试服务包含APP兼容性测试、功能测试、远程调试等测试服务,好服务+产品力双重竞争优势winback九江银行测试项目!

相关产品

  • 云消息队列 MQ