简谈阿里云MQ消息队列云服务的计费模式

文章摘要:在阿里云上,就创建了一个消息队列的Topic,其他啥也没干,过了一天就欠阿里云2元了,消息队列这项云服务也太能吸金了吧?

简谈阿里云MQ消息队列云服务的计费模式.jpg

一、谈谈MQ消息队列的产品概念

最简单地说,消息队列就是消息在传输过程中用于保存消息的容器,在一次发送接收的通信过程中,其主要充当了“中转站”的角色,内部提供路由并保证消息的可靠传递。如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。
消息队列目前已经逐渐成为企业IT系统内部通信的核心手段之一,可以说当前绝大部分的大型分布式互联网业务系统都基于消息队列来构建的。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列的功能,成为异步通信的主要手段之一。

二、MQ消息队列云服务产品定义

近几年,随着云计算技术的飞速发展,在IAAS产品已经相对成熟后,其他越来越多的产品也逐步推向了云端(很多中间件产品再用以前liences授权计费的方式已经不再受用)。MQ消息队列是中间件产品中比较重要的产品之一,其云化方案对于云计算平台能力的拓展与丰富有着重要的意义。
MQ(Message Queue)消息队列云服务是构成云计算核心能力不可或缺的一项产品,可以为云端的用户提供一种定义未来云端的应用开发和未来企业的技术架构方案的新方式。对于云端的消息队列服务,如果无法采用传统的liences授权方式计费,那么它又是如何计费的呢?今天小编就向大家介绍下消息队列中间件这项云服务在阿里云上是怎么来计费的。

三、阿里云MQ消息队列云服务的计费方式

3.1、两种主要的消息队列云服务计费模式

目前,阿里云上主要提供如下两种云化商用版MQ的计费模式:
(1)预付费(包年包月,MQ 铂金版):即为业界常说的包周期云服务计费模式,云端客户根据自己的预算以几个月或者一年作为租赁使用周期进行预先付款结算。根据阿里云官方文档的说明:该种计费方式订购的MQ是:“专享实例,独占物理节点”;诸如“专家尊享通道 & 保价护航”、“SQL 属性过滤”、“数据传输加密”、“多路访问方式”、“VPC SingleTunnel 访问”和“消息轨迹”几个重要的功能特性方面都比(2)中的按量付费版要支持的更加全面和完善一些。其实,从性价比上面来说更加适合一些土豪级的企业级大客户来用了。对于这类用户,可能本身不会去过多的研究MQ的一些关键技术,可以完全依托于阿里云的MQ产品 & 研发团队核心成员直接为自己的云端系统的构建,提供较为全面的MQ技术支持。
(2)后付费(按量计费):即为按量后付费的云服务计费模式,阿里云按照客户端的使用情况(一般,按照“Topic占用时长”+“API的调用次数”来计费的,具体的计费方法后面还会再讲)。各方面的功能都弱于(1)中的预付费版本。这种方式比较适合对MQ关键技术有一定了解的初中级使用者,完全可以按照自己的需求来构建适合云端业务系统的MQ。

3.2、阿里云MQ消息队列云服务的计费方法

MQ 费用 = API 调用费 + Topic 资源占用费
API 调用次数 = 发送消息 API 调用次数 + 订阅消息 API 调用次数 + 长轮询 API 调用次数(长轮询说明:MQ Consumer 为保证消息实时推送而产生的 API 调用,每个队列 15 秒一次长轮询,在此期间,若队列内有消息产生,则不计长轮询次数)。(摘自阿里云官网

解读:从上面这段阿里云官网上的计费项目说明中,可以得出以下几点关键信息:
(1)Topic资源占用费:这部分费用可能往往会被用户忽略。使用MQ消息队列云服务的费用实际是包含两部分的,也就是说像小编一样虽然没有用阿里云的MQ消息队列进行消息的发送和消费,但是因为创建并占用着一个Topic一天(Topic也是MQ消息队列资源的一部分),因此也会对小编的账户进行扣费。所以,这里也提醒各位使用阿里云MQ消息队列云服务的各位童鞋要注意下,对于自己不用的Topic尽快删除,否则也会产生资费;
(2)API调用次数:这部分的第一点应该比较好理解,对于MQ消息队列的使用(即为消息的发送和接收),需要按照调用Client端的API发送消息或者消费消息的次数来进行累计产生资费。但是,对于第二点没有实际使用过RocketMQ的童鞋可能不太好理解。在RocketMQ中,在Push的消费模式中有长轮询机制,如果Consumer端第一次发送Pull消息的请求至Broker,此时Broker端尚无可消费的消息时,会先hold住该Pull消息的请求,通过Broker端的两个后台线程服务—PullRequestHoldService和ReputMessageService来重新尝试Pull消息和二次处理。这里,默认长轮询的RPC通信的超时时间为30s,而Broker端挂起Pull消息请求的最长时间即为15s。从这里来看,第一次hold住Pull请求的15s是不计费长轮询次数的(即为不计费的,小编认为因为hold住Pull请求是broker端来完成的本身就不会带来PRC远程通信的一次调用),倘若第二次从consumer端再发起长轮询请求则会进行计费,小编个人想想觉得也合理的,因为毕竟会耗费一次RPC的远程通信访问。
这里列出下阿里云MQ消息队列云服务两种计费项目的列表展示:

阿里云消息队列云服务的计费方法图.jpg

从这张阿里云官方的表格上面可以看出,无论是“按照API调用次数计费”还是“按照Topic的资源占用计费”都是采用阶梯计费方式。基本上采用的计费策略是,发送和消费的消息的调用次数越多则“每个Topic每日费用”和“每百万次费用”越便宜,这个倒是也符合批量销售云服务资源的原则哦!
另外,对于其中具体的实现,小编大胆地猜测下阿里云MQ消息队列云服务的Broker端可能是采用类似开源版本中的Broker状态统计服务实现类—BrokerStatsManager(内部构建定时任务)的方式,来做到对Topic占用时长和API调用次数的汇总统计,同时借助RocketMQ本身的store存储服务能力来持久化这些汇总统计的数据log至磁盘上。不过,这里需要考虑好如何解决Topic中多个messageQueue消息队列分布在不同broker上的数据统计问题。

3.3、阿里云MQ消息队列云服务的计费说明

  1. MQ 后付费产品,每小时进行一次结算,每 24 小时出一次账单(次日出账单),费用将自动从账户余额中扣除;
  2. Topic 资源占用费按每个 Topic 每日 API 调用次数阶梯计费,主-主账号授权双方均正常计费,主-子账号授权所有计费归属主账号;不再使用的 Topic 请及时删除,避免产生不必要的费用;
  3. 调用发送接收 API 均计费,计量单位为百万次;API 调用次数包括长轮询 API 的调用,正常收发消息时,不会产生多余长轮询 API 调用;
  4. 消息体大小最大限制为 4 MB,每 4 KB 发布或订阅数据以 1 次请求计费。例如,1 次负载(发布或订阅)为 256 KB 的 API 调用将以 256/4 次请求计费;
  5. 事务消息发布请求 1 次按照 50 次计费,订阅按照普通消息计费。例如,发布事务消息 1 次,订阅该消息 1 次,按照 50+1=51 次 API 调用计费;
  6. 顺序消息发布请求 1 次按照 25 次计费,订阅请求 1 次按照 25 次计费。例如,发布顺序消息 1 次,订阅该消息 1 次,按照 25+25=50 次 API 调用计费;
  7. 定时消息发布请求一次按照 25 次计费,订阅按照普通消息计费。例如,发布定时消息 1 次,订阅该消息1 次,按照 25+1=26 次 API 调用计费;(摘自阿里云官网

对于上面的计费说明,从中可以看出关键信息有如下几点:
(1)阿里云MQ消息队列云服务是支持ACL权限分配的,可以将主账号创建的Topic分配给子帐号使用,子帐号产生的计费将会算到主账号上;
(2)MQ的后付费产品的结算方式应该是采用了根据出MQ云服务资源计量文件以后次日(T+1日来根据资源计量文件生成账单从账户扣费),这种方式就会存在余额不足的小风险(ps:欠费72小时后阿里云会自动清理该用户下面的Topic及其未消费而积压的存量消息);
(3)计费中比较关键的一点是“每 4 KB 发布或订阅数据以 1 次请求计费”,小编认为这一点倒也合乎情理,消息发送或者接收本质上来说是一次RPC通信(基于TCP连接),那么按照消息大小来合理设置请求计费次数,即为对占用TCP带宽大小和吞吐量的计费。这一点在用户使用时候可能会忽略;
(4)事务消息、顺序消息和定时消息均比普通消息的计费价格来得更贵更高,所以使用的童鞋要好好考虑下发送和订阅这三类消息产生的资费问题;

四、总结

本文主要根据自己在阿里云上使用MQ消息队列云服务的一些经验展开叙述,从技术开发者的视角来看MQ消息队列云服务的产品概念和定义,并对阿里云MQ消息队列云服务的计费模式和方法进行深入分析。限于笔者的才疏学浅,对本文内容可能还有理解不到位的地方,如有阐述不合理之处还望留言一起探讨。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,076评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,658评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,732评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,493评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,591评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,598评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,601评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,348评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,797评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,114评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,278评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,953评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,585评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,202评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,180评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,139评论 2 352

推荐阅读更多精彩内容