一分钟了解阿里云产品:消息队列

一、             概述

 

阿里云发布的产品种类繁多,今天让我们一起来了解下消息队列(Message Queue,简称MQ)吧。

 

 

什么是消息队列呢?

 

消息队列是企业级互联网架构的核心服务,基于高可用分布式集群技术,搭建了包括发布订阅、接入、管理、定时(延时)、监控报警等一套完整的高性能、高性价比消息云服务。MQ是阿里云正式商用的互联网消息中间件,帮您实现分布式计算场景中所有异步解耦功能。MQ由阿里巴巴集团中间件技术部自主研发,是原汁原味的阿里集团中间件技术精华之沉淀,是可靠的企业级消息中间件产品。

 

 

那么,消息队列有什么优势呢?

 

  • 消息队列经过双11阿里交易、商品、营销等核心链路真实场景验证。阿里集团内部1000+核心应用使用,每天流转几千亿条消息,稳定可靠。
  • 消息队列历史超过7年,消息保证不丢,技术体系丰富成熟。
  • 消息队列支持专有云独立输出,支持物理机和虚拟机,最小部署仅几台机器
  • 消息队列一份消息多份落盘存储,经过严格断电测试,消息依然保证不丢失。支持消息轨迹,消息从生产到消费轨迹,可清晰排查。海量消息堆积,单个Topic可堆积100亿+条消息,防止系统高流量崩溃。
  • 消息队列性能很高,同一网络内,消息传输RT在10毫秒之内,性能测试下,网卡可被打满。支持大量消息并发发送,超过5万个队列,性能依然卓越。支持消息海量堆积,单Topic可堆积100+亿条消息,单条消息默认最大支持256K。
  • 消息队列支持跨网络调用,HTTP公网接入支持跨网络调用,HTTP Restful接口公网接入。MQTT接入,支持主动推送模,多级Topic模型支持一次触达1000万+终端。可广泛应用于物联网和社交即时通信场景,可跟JStorm等实时计算完美结。

 

 

可能您会问到,“我处在什么样的应用或服务场景时,可以选择消息队列呢?”

 

消息队列Message Queue可应用在多个领域,包括异步通信解耦、企业解决方案、金融支付、电信、电子商务、快递物流、广告营销、社交、即时通信、移动应用、手游、视频、物联网、车联网等。

 

  • 通用场景:一对多,多对多异步解耦,削峰场景,日志监控。

 

  • 行业应用:消息推送,金融报文,电信信令。


目前,已有钉钉、上海网聚宝、杭州安存科技、天猫双十一等在使用消息队列。

 

消息队列典型特性介绍:

https://www.aliyun.com/product/ons/?spm=5176.7400024.3.54.THw5e7

 

 

 

二、             技术点(消息队列五大热点技术问题分析)

 

在上一篇文章中,我们为大家介绍消息队列的概况,消息队列(Message Queue,简称MQ)是企业级互联网架构的核心服务,基于高可用分布式集群技术,搭建了包括发布订阅、接入、管理、定时(延时)、监控报警等一套完整的高性能、高性价比消息云服务。那在使用过程中,经常遇到的热门技术问题有哪些呢?

 

MQ 发送消息:

https://help.aliyun.com/document_detail/ons/quick-start/send.html?spm=5176.docons/quick-start/apply.6.85.ixfbeh

 

MQ 查询消息:

https://help.aliyun.com/document_detail/ons/quick-start/track.html?spm=5176.docons/quick-start/delete.6.88.9FFLOJ

 

问题定位:

https://help.aliyun.com/document_detail/ons/quick-start/check.html?spm=5176.docons/quick-start/track.6.89.fsbN7t

 

MQ常见问题:

https://help.aliyun.com/document_detail/ons/faq/faq.html?spm=5176.docons/quick-start/check.6.168.zxvHm0

 

消息队列控制台TOPIC异常处理方法:

https://help.aliyun.com/knowledge_detail/6562887.html?spm=5176.789006200.2.2.c8PUFu#%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97%E6%8E%A7%E5%88%B6%E5%8F%B0TOPIC%E5%BC%82%E5%B8%B8%E5%A4%84%E7%90%86%E6%96%B9%E6%B3%95

 

 

希望上面的内容,能够对大家有所帮助。

 

 

 

三、             体验(消息队列服务MQS使用分享)

 

消息队列MQS,顾名思义,是用于发送接收消息用的。废话不说,直接进入主题。

 

 

使用场景:服务添加了一个新功能,主要用于生成图片,本人用的开发语言是PHP,生成图片比较耗服务器性能,如果使用一台服务器生成的话,生成大量图片时速度就会很慢。

由此决定使用3台服务器同时处理,将任务分布到3台服务器中。另外有一台服务器用于提交任务。

MQS支持多个生产者、多个消费者并发访问一个队列(本例是一个生产者,3个消费者)。

 

简单的服务器部署情况如下图:

 一分钟了解阿里云产品:消息队列

 

具体的代码实现这里就不再说明了,个人是根据官方的API文档稍微封装了一下:http://www.aliyun.com/product/mqs/?spm=5176.383338.201.16.ZoLW8Q#Help

 

服务器部署完之后,封装好API之后,接下来使用就很简单了, 管理后台可以添加修改队列配置。

 

过程比较简单:

 

1.生产者添加消息

2.消费者取出消息,完成业务逻辑后通知队列已经完成。

 

添加队列如下:

 一分钟了解阿里云产品:消息队列

 

说明一下隐藏时长的个人理解:消费者取出消息,过了(隐藏时长)未通知队列处理完成,那认为消息还没消耗掉,可以再取出!

 

关于具体如何使用这里就不多做介绍,官方文档也比较齐全,而且对接小二热情周到!

本人使用MQS三个多月,还没出现消息遗漏的情况,解决了大量任务分布处理的需要,非常稳定方便!

总体来说,相当满意!以上就是我使用消息队列的一点体会,希望大家能有所收获。

 

 

如果您想详细了解消息队列,请访问:

https://bbs.aliyun.com/read/179164.html?pos=5

 

大型网站架构系列:分布式消息队列(一):

https://yq.aliyun.com/articles/7534?spm=5176.100240.searchblog.8.mRjsRI

上一篇:阿里云大数据利器Maxcompute学习之--窗口函数实现分组TopN


下一篇:一分钟了解阿里云产品:访问控制