2021-05-07

阿里云消息服务提供队列模型和主题模型两种服务。队列模型支持高并发、高可靠的一对一消费,提供丰富队列属性配置,保证消息至少消费一次。主题模型则实现了一对多的消息发布订阅,支持消息标签过滤、多种投递方式,如HTTP推送、Queue投递等,同时具备消息过滤和多种通知功能。两种模型均支持日志管理和云监控,确保消息传递的稳定性和安全性。
摘要由CSDN通过智能技术生成
消息服务提供两种模型
    1.队列模型
    2.主题模型

队列模型简介:

         队列模型旨在提供高可靠高并发的一对一消费模型。即队列中的每一条消息都只能够被某一个消费者进行消费。
 
队列模型示意图:

队列模型特性

A. 丰富的队列属性配置

我们提供了丰富的队列属性配置选项,您可以进行队列属性的个性化配置来满足不同的应用场景,支持:普通队列、延迟队列、优先级队列等多种队列模式。

B. 支持海量并发访问

支持多个生产者和消费者并发访问同一个队列,并能确保某条消息在取出之后的特定时间段内,无法被其他消费者获得。可以根据业务需求自由伸缩并发访问数。

C. 消息投递保障

在消息有效期内,确保消息至少能被成功消费一次。接入阿里云账号体系,用户间资源隔离,确保您队列中的消息不会被非法获取。

D. 分布式事务消息

完善的分布式环境下事务消息解决方案。

E. 支持日志管理

可以通过日志管理的方式,查看每一条消息发送、接收和删除的完整生命周期。用户可以通过日志管理,方便的进行问题调查。
详见: 日志管理

F. 支持云监控

用户可以通过云监控查看队列情况,并且可以自定义报警项,当队列情况不符合期望时,能够及时知晓。
 

主题模型简介

主题订阅模型旨在提供一对多的发布订阅以及消息通知功能,支持用户实现一站式多种消息通知方式:
  • 推送到用户指定 HttpServer
  • 推送到用户指定的 Queue(用户可以从该 Queue 拉取消息)
  • 推送到邮件(组)
  • 推送到短信(列表)
  • 移动推送(计划支持)

主题模型示意图:

说明:
  • 图中所示,Topic上有多个订阅,分别使用了不同的推送方式,有推送到 HttpServer 的,有推送到 Queue 的,有推送到邮箱中的等等。
  • 图中所示,一条消息发布到 Topic 中后,会被分别推送到不同的订阅指定的 Endpoint 中。
  • 图中所示,订阅支持消息过滤,可以在订阅中指定 过滤标签。对于没有指定 过滤标签的订阅,发送消息时,无论有没有指定 消息标签,消息都可以推送到指定的接收端;对于指定了 过滤标签的订阅(Subscription2),发送的消息,只有指定了匹配的 消息标签(红色的消息B),消息才会推送到指定的接收端。

主题模型特性

  • 支持通知消息
  • 支持一对多广播消息
  • 支持消息标签过滤
  • 支持多种投递方式
  • 消息投递保障
  • 支持云产品事件通知
  • 支持日志管理
  • 支持云监控

A. 支持通知消息

1)MNS服务端主动将消息推送给用户指定的回调地址(消息通知地址),消除用户端程序不必要的轮询和资源消耗。用户可以将资源集中在处理自身业务的逻辑中。并且也可以避免对其他消息服务产品客户端的依赖,避免因为过多代码引入从而影响自身服务的稳定性。
2)同时,对于由于网络或者其他原因造成用户不方便提供回调地址的,MNS也支持将消息推送到 Queue 中,用户仍然可以直接到 Queue 中获取消息。原先使用“队列模型”的消费者,可以无缝消费主题中的消息。
 

B. 支持一对多广播消息

1)发布到主题中的一条消息可以同时被多个订阅者订阅,会被按照多个订阅指定的推送方式和 Endpoint 地址推送过去。用户同时可以从多个(种)渠道接收到这条消息。
2)用户仅需发布一次,就可以将消息推送到多个接收端,保证了消息发布的原子性。

C. 支持消息标签过滤

在支持一对多广播消息的基础上,在订阅中还支持对消息进行过滤。可以订阅 Topic 中带有特定标签的消息。在创建订阅时指定消息过滤标签,然后 PublshMessage 时指定消息标签,MNS在推送消息时会根据标签进行过滤,仅推送消息标签与订阅中指定的过滤标签匹配的消息到指定 Endpoint 上。
详见: 主题接口规范

D. 支持多种投递方式

MNS支持多种消息投递方式,包括但不限于:

E. 消息投递保障

在消息有效期内,保证发布到 Topic 中的消息会按照指定的策略和格式推送给用户程序。推送策略包括:
  • 退避重试(BACKOFF_RETRY)
    重试 3 次,每次重试的间隔时间是 10秒 到 20秒 之间的随机值
  • 指数衰减重试(EXPONENTIAL_DECAY_RETRY),
    重试 176 次,每次重试的间隔时间指数递增至 512秒,总计重试时间为1天;每次重试的具体间隔为:1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 512 … 512 秒 (共167个512)
推送消息格式包括:
  • XML:消息体为XML格式,包含消息正文和消息属性;
  • JSON:消息体为JSON格式,包含消息正文和消息属性;
  • SIMPLIFIED (精简格式,即文本格式):消息体即用户发布的消息,不包含任何属性信息;

F. 支持云产品事件通知

MNS提供了事件通知的功能,用户可以通过在MNS上创建事件通知的规则,来关注其他阿里云产品指定资源上产生的事件,并且由MNS以消息的方式主动推送到指定的接收端。目前已接入OSS,用户可以通过事件通知功能监听和处理 OSS 中 Bucket 的管理事件、Bucket 中 Object 的创建、删除、更新等事件。
详见: OSS 事件通知

G. 支持日志管理

可以通过日志管理的方式,查看每一条消息发布进主题的记录,以及每一次推送给用户的记录,包括重试推送的记录、推送结果等。能够展示每条消息的生命周期。用户可以通过日志管理,方便的进行问题调查。
详见: 日志管理

H. 支持云监控

可以通过云监控查看消息推送的记录,及时查看和监控消息的推送情况,当推送失败次数比较多时,能够通过添加报警的方式及时知晓。
 
主题模型的限制:
    1. topic个数没有上限,但是一个topic下的sub个数上限为100。
       2. topic消息推送不能指定到sub
       3.主题限制:500/s,队列没有限制
 
 
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值