rabbitmq传递文件_使用RabbitMQ进行消息传递

阅读: 评论:0

rabbitmq传递⽂件_使⽤RabbitMQ进⾏消息传递
rabbitmq 传递⽂件
是⼀个强⼤的消息代理,可⽤于实现不同的消息传递模式。 即使有 (使⽤不同的语⾔和框架),也很难理解这些概念。 在这篇⽂章中,我想展⽰⼀些可以⽤RabbitMQ实现的不同范例,以及为什么要为某些概念⽽苦恼。
使⽤队列发送和接收
最简单的⽅法是使⽤队列发送消息,并让使⽤者从同⼀队列中读取数据。
没有什么可以阻⽌您拥有多个使⽤者,每个使⽤者都可以处理队列中的消息。 使⽤完⼀条消息后,该消息将从队列中消失。
当具有需要执⾏的任务并且⽆论哪个消费者处理任务都⽆关紧要时,这特别适合。
发布/订阅
并⾮所有⽤例都只消耗⼀条消息的⽅式。 通常,您希望拥有多个应该全部处理所有消息的使⽤者。 ⼀个
⽰例可以是将对象存储在不同的数据存储中(例如,搜索索引和数据库),另⼀种是域事件,例如已提交并应由订单管理系统和库存系统处理的订单。 这需要⼀种发布/订阅机制,RabbitMQ当然已经涵盖了这⼀点。
与仅使⽤队列相⽐,最⼤的区别是在这种情况下,⽣产者不再直接写队列。 ⼀个称为Exchange的实例将接受邮件并将其转发到⼀个或多个队列。
要使⽤经典的发布/订阅模型,您可以使⽤FanoutExchange将消息转发到⼀个或多个队列。 要连接交换和队列,您需要声明⼀个绑定,在这种情况下,特定交换的所有消息都应转发到特定队列。
每个使⽤者都从专⽤队列中读取消息。 这也意味着您将需要为每个正在监听的使⽤者绑定⼀个绑定。
使⽤RabbitMQ,可以使⽤在使⽤者停⽌监听时⾃动删除的队列。 这允许消费者加⼊和离开时具有⾮常动态的⾏为。
看我们的第⼀个⽰例,您可能想知道为什么有不同的⽅式来发送消息,发送队列和进⾏交换。 事实证明,发送到队列确实是不可能的。 总是存在⼀个默认交换,它仅转发消息。 此默认交换仅获取消息的某个路由键(即队列名称),然后将它们以相同的名称放⼊队列中。
发布/订阅过滤
除了将消息发送到已注册进⾏交换的所有队列之外,还可以根据路由密钥对消息进⾏过滤。 所有消息都被发送到⼀个交换机,该交换机通过查看路由键来决定将消息发送到哪个队列。
如果您想与路由键完全匹配,请执⾏DirectExchange。
将DirectExchange绑定到队列时,您需要提供⼀个路由密钥,该路由密钥将确定将为此队列考虑的路由密钥。 如果要分配多个路由键,则可以为同⼀队列添加多个绑定。
您还可以提供通配符来确定应将哪些路由密钥⽤于队列,这可以通过使⽤需要分层路由密钥的TopicExchange来完成。
⼀开始,这两个交流-直接交流和主题交流-可能最让我感到困惑。 当涉及到主题时,我正在考虑经典的发布订阅系统,例如使⽤FanoutExchange时。 交换名称是客户端正在注册的主题。 但是这⾥的主题是指在现有交换机上的⼀种路由。 与DirectExchange相同:我希望直接交换类似于第⼀个直接将消息发送到队列的⽰例。 但是在这种情况下,直接交换是指直接路由,因此您始终需要为此提供路由密钥。
如果您想进⼀步了解各种交流,请转到 。
rabbitmq 传递⽂件

本文发布于:2023-05-05 22:07:31,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/1/89362.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:队列   消息   交换   需要   交流   发布   处理   订阅
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图