当前位置: 首页 > 知识库问答 >
问题:

rabbitmq 的新特性 Streaming 可以用在什么业务上?

凤安然
2024-05-27

https://www.rabbitmq.com/

图片.png

You run a video platform. When a user uploads a new video, you have multiple tasks to complete when the video is safely stored: run some post-upload analysis, transcode lower quality copies of the video, notify other users subscribed to the author's creations, and so on.
您运营一个视频平台。当用户上传新视频时,在安全存储视频后您需要完成多项任务:运行一些上传后分析、对视频的低质量副本进行转码、通知订阅作者作品的其他用户等等。

The upload service appends “New video” events to a RabbitMQ stream. Multiple backend applications can subscribe to that stream and read new events independently of each other. Users must be notified right away, but the post-upload analysis can wait and run once a day.
上传服务将“新视频”事件附加到 RabbitMQ 流。多个后端应用程序可以订阅该流并彼此独立地读取新事件。必须立即通知用户,但上传后分析可以等待并每天运行一次。

看了上面 rabbitmq 的介绍,感觉这个 Streaming 就是一个 topic 交换机?

新的 Streaming 能实现旧版本 rabbitmq 不能实现的某些功能吗?

共有1个答案

殳飞扬
2024-05-27

RabbitMQ 的 Streaming 插件确实为消息队列提供了新的特性和使用场景。针对您提出的问题:

RabbitMQ 的 Streaming 可以用在什么业务上?

RabbitMQ Streaming 插件特别适用于需要处理大量实时事件流、且这些事件需要被多个独立消费者处理的业务场景。它非常适合微服务架构,其中不同的服务需要独立地消费相同的事件流,并根据自己的业务逻辑进行处理。在您给出的例子中,视频平台就非常适合使用 RabbitMQ Streaming。当有新的视频上传时,可以通过 Streaming 插件发布事件,然后多个后端服务(如分析服务、转码服务、通知服务等)可以独立地订阅并处理这些事件。

新的 Streaming 能实现旧版本 rabbitmq 不能实现的某些功能吗?

是的,RabbitMQ Streaming 相对于旧版本的 RabbitMQ 提供了一些新的功能和优势:

  1. 持久化流:Streaming 插件支持将消息流持久化到磁盘,从而确保在系统故障或重启后消息不会丢失。
  2. 消费者组:Streaming 允许创建消费者组,这样多个消费者可以共同处理同一个消息流,实现消息的负载均衡和容错。
  3. 独立的消息确认:每个消费者可以独立地确认自己处理的消息,这使得消息的处理更加灵活和可靠。
  4. 简单的API和集成:Streaming 插件提供了一个简洁直观的API,使得与其他系统和服务的集成变得更加容易。

虽然 Streaming 插件在某些方面与 RabbitMQ 的 Topic 交换机有相似之处(例如,它们都允许将消息发布到一个或多个队列以供消费者处理),但 Streaming 插件提供了更高级别的抽象和功能,特别是针对处理大量实时事件流的场景。

需要注意的是,RabbitMQ Streaming 并不是要完全替代 RabbitMQ 的其他功能或插件,而是为特定使用场景提供了额外的选项和优势。在选择是否使用 Streaming 插件时,需要根据具体的业务需求和技术栈进行权衡和决策。

 类似资料:
  • 无意中发现chrome 116,Edge 都可以这么输出,没有引用jquery等类库。 请问这是哪个版本更新出来的?

  • 本文向大家介绍什么是事务?及其特性?相关面试题,主要包含被问及什么是事务?及其特性?时的应答技巧和注意事项,需要的朋友参考一下 事务:是一系列的数据库操作,是数据库应用的基本逻辑单位。 特性: (1)原子性:即不可分割性,事务要么全部被执行,要么就全部不被执行。 (2)一致性或可串性。事务的执行使得数据库从一种正确状态转换成另一种正确状态 (3)隔离性。在事务正确提交之前,不允许把该事务对数据的任

  • 我有充分的证据表明,适用于子菜单(如弹出式上下文菜单或子级菜单)。它用于jQueryUISelectMenu,也用于这个伟大的示例。 我无法确定的是,是否适用于以下两个示例: 信息性弹出窗口,如引导窗口-用于上下文信息,但不包含任何链接

  • 问题内容: 我认为人们普遍认为,作为Java(以及可能带有异常处理的任何语言)中的一条通用规则,应尽量避免使用异常处理来实际处理业务逻辑。通常,如果预期会发生某种情况,则应该检查并更直接地处理它,而不是依靠异常处理为您做检查。例如,以下情况不被认为是好的做法: 相反,延迟初始化应该更像这样完成: 当然,除了简单地处理延迟初始化之外,还可能存在更复杂的逻辑。因此,考虑到这种事情通常是令人生厌的……何

  • 本文向大家介绍什么是事务的四大特性(ACID)?相关面试题,主要包含被问及什么是事务的四大特性(ACID)?时的应答技巧和注意事项,需要的朋友参考一下 原子性(Atomicity): 事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用; 一致性(Consistency): 执行事务前后,数据保持一致,多个事务对同一个数据读取的结果是相同的; 隔离性(Isolati

  • 本文向大家介绍浅谈目前可以使用ES10的5个新特性,包括了浅谈目前可以使用ES10的5个新特性的使用技巧和注意事项,需要的朋友参考一下 ECMAScript 2015,也称为ES6,是一个花了6年时间完成的主要版本。从那时起,负责ECMAScript标准开发的技术委员会39 (TC39)每年都会发布该标准的新版本。这个年度发布周期简化了这个过程,并使新特性快速可用,JavaScript社区对此表示