学习使用阿里云消息服务(二)

    上篇博客学习的是阿里云的消息服务,和传统的消息中间件做了简单的对比。这篇博客回归到消息队列,总结一下消息队列的相关知识。

    一. 消息队列概述

        消息队列(Message Queue,简称 MQ)是阿里巴巴集团中间件技术部自主研发的专业消息中间件。产品基于高可用分布式集群技术,提供消息发布订阅、消息轨迹查询、定时(延时)消息、资源统计、监控报警等一系列消息云服务,是企业级互联网架构的核心产品。MQ 历史超过9年,为分布式应用系统提供异步解耦、削峰填谷的能力,同时具备海量消息堆积、高吞吐、可靠重试等互联网应用所需的特性,是阿里巴巴双11使用的核心产品。
        MQ 是阿里云正式商用的产品,目前在阿里云多个地域(Region)提供了高可用消息云服务,单个域内采用多机房部署,可用性极高,即使整个机房都不可用,仍然可以为应用提供消息发布服务,产品稳定性及可用性完全按照阿里巴巴内部标准来实施,无单点。
        MQ 目前提供 TCP、HTTP、MQTT 三种协议层面的接入方式,支持 Java、C++ 以及 .NET 不同语言,方便不同编程语言开发的应用快速接入 MQ 消息云服务。用户可以将应用部署在阿里云 ECS、企业自建云,或者嵌入到移动端、物联网设备中与 MQ 建立连接进行消息收发,同时本地开发者也可以通过公网接入 MQ 服务进行消息收发。

    二. 消息队列对比

        众所周知,消息队列的产品也是不止一个,如RocketMQ,Kafka,RabbitMQ等,下面是它们之间的比较:

这里写图片描述
这里写图片描述

    三. 消息队列功能

        MQ 提供了多种协议和开发语言的接入方式以及多维度的管理工具,同时针对不同的应用场景提供了一系列的特色功能。

这里写图片描述
这里写图片描述

    四. 消息队列应用场景

        消息队列 MQ 可应用于如下几个场景:
        1. 分布式事务
        在传统的事务处理中,多个系统之间的交互耦合到一个事务中,响应时间长,影响系统可用性。引入分布式事务消息,交易系统和消息队列之间,组成一个事务处理,能保证分布式系统之间数据的最终一致。;下游业务系统(购物车、积分、其他)相互隔离,并行处理。
        2. 实时计算
        通过消息队列(MQ),将源端不停产生的数据实时流入到计算引擎,实现实时计算。可采用如下计算引擎:Spark / Storm / EMR / ARMS / BeamRunner。
        3. 大规模缓存同步
        在商业大促活动中,如“双11”大促,各个分会场会有琳琅满目的商品,每件商品的价格都会实时变化;同时,大量并发访问商品数据库,会场页面响应时间长。集中式缓存,带宽成瓶颈,无法满足对商品价格的访问需求。
        消息队列(MQ)能够通过大规模缓存同步,减少页面响应时间;针对分会场的多缓存设计,满足客户对商品价格的访问需求。

猜你喜欢

转载自blog.csdn.net/u013034223/article/details/79300259