本文档主要包含以下内容:
- 如何开通 MQ 服务
- 如何申请 MQ 资源
- 如何通过 MQ 进行消息收发
-
按照Message Topic查询消息:
-
按照Message Key查询消息:
-
按照Message ID查询消息:
-
NOT_ONLINE 订阅端不在线
-
CONSUMED 消息已经被投递
订阅端返回ReconsumerLater,或者返回NULL,或者抛出异常,消息都会走重试流程,消息投递状态都是CONSUMED。
-
CONSUMED_BUT_FILTERED 消息已经被投递且被过滤
比如,发布端发布消息topicA,tagA,订阅端订阅topicA,tagB
-
NOT_CONSUME_YET 消息未被投递
有可能消息发生了堆积,还未被消费;也有可能消费线程hang住了,导致消费线程迟迟没有返回。
本文描述MQ消费者如何根据Tag在MQ服务端完成消息过滤。
Tag,即消息标签、消息类型,用来区分某个MQ的Topic下的消息分类。MQ允许消费者按照Tag对消息进行过滤,确保消费者最终只消费到他关心的消息类型。
以下图所示电商交易场景为例,从客户下单到收到商品这一过程会生产一系列消息,比如订单创建消息(order)、支付消息(pay)、物流消息(logistics)。这些消息会发送到Topic为Trade_Topic的队列中,被各个不同的系统所接收,比如支付系统、物流系统、交易成功率分析系统、实时计算系统等。其中,物流系统只需接收物流类型的消息(logistics),而实时计算系统需要接收所有和交易相关(order、pay、logistics)的消息。
针对消息归类,用户可以选择创建多个Topic, 或者在同一个Topic下创建多个Tag。但通常情况下,不同的Topic之间的消息没有必然的联系,而Tag则用来区分同一个Topic下相互关联的消息,比如全集和子集的关系,流程先后的关系。
以上源于官方文档:
https://help.aliyun.com/document_detail/34411.html?spm=5176.doc29543.6.94.7hMbB4