消息队列(MQ)重磅推出MQTT移动物联套件

消息队列(MQ)可应用在多个领域,包括异步通信解耦、企业解决方案、金融支付、电信、电子商务、快递物流、广告营销、社交、即时通信、移动应用、手游、视频、物联网、车联网等。近期,消息队列(MQ)推出顺序消息消息、MQTT移动物联套件、Kafka企业级消息服务。下述内容将解析消息队列(MQ)顺序消息、车联网、Kafka企业级消息服务的应用场景。

1. 消息类型及多种场景

消息队列支持多种消息类型:

  • 普通消息:最大4M,消息越小,性能越高
  • 事务消息:两阶段提交、解决分布式事务问题
  • 定时消息:消息的延时或者定时投递;最长40天
  • 顺序消息:全局顺序、分区顺序;严格保证消息的顺序

通用场景

一对多、多对多异步解耦

基于发布订阅模型,分布式应用异步解耦,可以增加应用的水平扩展性,增加前端应用快速客户反应能力。

削峰场景

大促等流量洪流突然来袭时,MQ可以缓冲突发流量,避免整个系统崩溃。

日志监控

做为重要日志的监控通信管道,将应用日志监控对系统性能影响降到最低。

性能报告

消息队列秉持开放、共享的原则拥抱开源生态,无技术绑定,2016年阿里巴巴正式宣布将 MQ 内核引擎 RocketMQ 捐赠给 Apache 软件基金会;与此同时,全面融合 kafka 生态,做到无缝迁移,打造更安全、更可靠、更易运维的 kafka 企业级消息服务。

此次我们总结了几款业界主流消息中间件产品的对比报告:

项目 消息队列(MQ) & Kafka 企业级消息服务 Apache RocketMQ(开源) Apache Kafka(开源) RabbitMQ(开源)
安全防护 × × ×
主子账号支持 × × ×
Low Latency × × ×
定时消息 √(支持秒级,最长可支持40天) √(只支持18个固定Level) ×
事务消息 √(支持HA) √(不支持HA) × ×
全链路消息轨迹 × × ×
消息堆积查询 × ×
消息回溯 × ×
可靠性 非常好,99.99999999% 一般 一般
可用性 非常好,99.99%,Always Writable
性能(常规 < 128字节 ) 非常好 ~= 50w/sec 非常好 ~= 50w/sec 非常好 ~= 23w/sec 一般 ~= 6w/sec
性能(万级Topic场景) 非常好 非常好
性能(海量消息堆积场景) 非常好 非常好
最大队列数(理论值) ~= 10w ~= 10w ~= 1k ~= 1k
服务支持 阿里云平台统一运维 用户运维成本高 用户运维成本高 用户运维成本高

2. MQTT移动物联套件

消息队列(MQ)提供 MQ-MQTT 移动物联套件,连接端(如移动设备、智能家电、汽车、机器人等)和云,实现双向通信,可支撑亿级设备连接与百万消息并发;

消息队列(MQ)重磅推出MQTT移动物联套件

一般来说车联网系统是一个端到云的多层体系,其数据流主要分为2类:

  • 数据上行采集:安装在车辆等执行部件上的传感器采集状态数据后,定期上传到服务端进行分析和应用。其特点是,车辆和传感器种类众多,基数大,移动数据网络大多走4G,不如固定网络稳定。
  • 指令下行推送:远程服务端根据设定,下行推送控制指令数据,控制指定的客户端进行某些行为。

为什么选择消息队列 MQTT 移动物联套件

  • 接入简单:提供了标准的 MQTT 物联网协议,支持多语言跨平台,接入更简单。
  • 多协议支持:支持自定义协议,包括车联网领域众多终端协议,例如国标808,新能源国标协议等等。
  • 安全灵活:支持设备级身份校验和SSL加密,数据传输更安全。同时可支持第三方认证体系,更灵活。
  • 服务稳定:消息队列服务于整个阿里巴巴集团已超过8年,经过阿里巴巴交易核心链路反复打磨与历年双十一严苛考验,是个低延迟、高并发、高可用、高可靠,可支撑万亿级数据洪峰的分布式消息中间件。
  • 生态丰富:消息队列拥抱开源,无技术绑定,无缝对接 kafka 生态以及各种流计算引擎与监控系统,实现大数据分析与运营。

3. 顺序消息的典型应用场景

下面,将介绍消息队列(MQ)新推出的顺序消息的应用场景:

场景一:全局顺序

消息队列(MQ)重磅推出MQTT移动物联套件

在金融行业中,外汇/证券交易有一个顺序性原则:1. 价格优先 2.时间优先,价格不同则价格优先,价格相同则时间优先;很明显,在这种情况下,买卖交易双方都是有严格顺序性的。消息队列的顺序消息可以很好的处理此类场景。

比如外汇交易中,可以指定不同的Topic对应不同的外汇兑换币种交易,同一类外汇兑换币种交易时采用全局顺序消息。

场景二:分区顺序

消息队列(MQ)重磅推出MQTT移动物联套件

在电商领域里面,每天都会有大量的交易发生,万万亿条数据已无法通过单一实例数据库进行处理,因此都会对数据库进行拆分,根据特定的key进行分库分表。为了提高数据更新与查询的效率,尽可能的避免全库全表扫描,买家库会根据买家ID进行拆分,卖家库则需要根据卖家ID进行拆分。那么,由此就会产生多种不同维度的数据异构复制的场景。

异构数据复制的过程中,目标数据库的数据必须严格按照源数据库中数据的增、删、改顺序才能保证数据的正确性。消息队列的分区顺序就可以很好的解决此类场景。

全局顺序为了严格保证顺序,消息的发布与订阅都必须是单并发,这会导致性能受到单并发的影响。而分区顺序则则可以根据分区的数量进行并发处理,从而提高整体的性能。由于在订单交易过程中,不同卖家的交易订单是不会有顺序关联的,只有在相同卖家、相同订单的情况下才必须保证顺序。因此,我们可以根据 seller_id 进行分区。

4. 消息队列(MQ)现已提供 Kafka 企业级消息服务

消息队列(MQ)重磅推出MQTT移动物联套件

消息队列提供的 Kafka 企业级消息服务包括以下特点:

无缝迁移

业务系统基于现有的 Kafka 代码与生态进行开发,无需任何改造,即可无缝迁移到阿里云消息队列(MQ)提供的 Kafka 消息服务。

更安全

消息队列(MQ)提供的 Kafka 消息服务利用 SASL 机制对用户身份进行认证,并利用 SSL 对通道进行加密,提供更加安全的消息服务;

高可靠/高可用

消息持久化落盘到消息队列,支持数多副本以及主备自动切换,可靠性达99.99999999%,服务可用性高达99.9%。

高性能

支持在万级Topic,以及海量的消息堆积的情况下,也始终保持超高的性能。

统一运维

提供一整套包括资源申请、资源授权、消息堆积查询、消息全链路轨迹、监控告警等运维服务,提升用户的产品体验。

消息互通

用户可以通过 Kafka Client 发送消息,MQ Client 订阅消息,反之亦然,真正做到消息队列(MQ)与 Kafka 消息完全互通。

前往领取消息队列(MQ)新手礼券(开通后不可领取)

查看消息队列(MQ)产品详情

申请MQ产品专家一对一咨询

上一篇:浅谈.NET下的多线程和并行计算(十三)CLR via C#第三版阅读笔记(2)


下一篇:浅谈.NET下的多线程和并行计算系列文章索引