rabbitmq相关内容

连接时出现rabbitmq错误

当我尝试使用php-amqp连接时出现此错误: 致命错误:找不到类'AMQPConnection' $credentials =array('host' => 'localhost','port' => 5672); $cnn = new AMQPConnection($credentials); $cnn->connect(); 解决方案 您似乎没有 AMQP PECL扩展已安装.该 ..
发布时间:2020-05-09 01:29:48 PHP

RabbitMQ使用者崩溃时,提取的消息会如何处理?

如果我有一个RabbitMQ使用者可以批量检索100条消息,但是在将这些消息标记为已处理之前它崩溃了,这些消息会丢失吗?我希望队列中的每条消息至少被处理一次.建议使用什么方法来处理在确认消息之前崩溃的消费者? RabbitMQ是否以某种方式将它们重新放置在队列中,或者我需要做些什么才能使其实现? 解决方案 与崩溃的消费者打交道的推荐方法是什么 在他们确认消息之前? 让Rab ..
发布时间:2020-05-09 01:29:46 其他开发

使用消息队列的Web应用程序的体系结构

我有一个Java Web应用程序,该应用程序通过数据库表(EmailQueue)使用某种形式的自定义消息队列来对电子邮件的传递进行排队.该应用程序已部署在Tomcat上,并使用 Quartz 作业来轮询EmailQueue表中要发送的新条目. /p> 我现在需要添加一些其他类型的作业和消息(通知,短信等)的排队,因此正在考虑使用适当的消息队列(文章,该论据认为不应将数据库用作队列. 但是, ..
发布时间:2020-05-09 01:29:20 Java开发

Rabbitmq使用.NET使用单个同步调用检索多条消息

是否有一种方法可以通过使用.NET的单个同步调用来接收多条消息? 我已经看到问题,并且找到了Java类 com.rabbitmq.client.QueueingConsumer ,但是我没有在.NET名称空间(RabbitMQ.Client,RabbitMQ.Client.Events)中找到此类客户端类 解决方案 您可以使用BasicQoS.PrefetchCount检索任意数量的消息 ..
发布时间:2020-05-09 01:28:33 C#/.NET

从RabbitMQ队列中检索消息

我希望在我的PHP应用程序中实现RabbitMQ,并且正在使用php-amqp扩展.我唯一的问题是,如何在PHP中轻松查询以返回队列的内容? php-amqp似乎无法使我做到这一点.如果我做错了,请在这里帮助我:) 解决方案 詹姆斯,你能在rabbitmq-discuss上问这个问题吗?您的问题涉及“查询"队列以获取消息的含义.在RabbitMQ中,您将使用队列中的消息,并使用队列绑 ..
发布时间:2020-05-09 01:28:29 PHP

具有延迟的简单可扩展工作/消息队列

我需要设置一个作业/消息队列,并为该任务设置一个延迟,这样它就不会被免费的工作人员立即拾取,而是经过一定时间(因任务而异).我研究了几个Linux队列解决方案(rabbitmq,gearman,memcacheq),但是似乎没有一个提供开箱即用的功能. 关于如何实现这一目标的任何想法? 谢谢! 解决方案 我使用BeanstalkD产生了很大的效果,在插入新作业时使用了delay ..
发布时间:2020-05-09 01:27:55 其他开发

RabbitMQ AMQP队列设计

下面是该队列的理想设计: P生产者.插入数据的应用程序 X交流. C1-C3消费者.从队列读取的应用程序 队列详细信息: A.就像队列日志一样,如果没有客户端绑定,则消息将被丢弃. B.这是一个工作队列.如果符合条件,它将执行某些操作. C.也是一个工作队列.它将转换数据 A是可选的,但B. C.将始终在队列中,直到某些客户端进程将其连接为止. 问题在于确定我 ..
发布时间:2020-05-09 01:27:28 其他开发

使用Celery动态创建队列

我正在使用Django,Celery和RabbitMQ编写邮件列表管理器.收到消息时,将为每个收件人执行一个任务.所有任务都进入一个队列,一个或多个工作人员使用队列中的任务,构造电子邮件并发送. 单个队列会导致公平性问题:如果邮件进入大型邮件列表,则会将大量任务添加到队列中,而其他邮件则无法通过其他较小的邮件列表,直到所有邮件都到达大清单已发送.我该如何找到解决方法? 从概念上讲,一种 ..
发布时间:2020-05-09 01:27:14 其他开发

RabbitMQ插件删除重复的消息

我有一个RabbitMQ队列用于文档生成.基本上,每个文档都有type和state(新的,正在处理的,就绪的),因此我将主题交换与type.state之类的路由键一起使用.每次文档更改时,我都会将带有最后文档描述的消息发送给交易所,并且效果很好. 但是有时文档可以处理两次: 用户发送新文档.因此,新消息report.new发送到交换. 当worker尚未开始文档处理(队列尚未到达)时 ..
发布时间:2020-05-09 01:27:02 其他开发

使用RabbitMq锁定和批量获取消息

我正在尝试以一种更加非常规的方式使用RabbitMq(尽管目前我可以根据需要选择其他任何消息队列实现).消费者没有将Rabbit推送消息留给我的使用者,而是连接到队列并获取一批N条消息(在此期间,它消耗了一些消息,并且可能拒绝了一些消息),然后跳转到另一个队列,依此类推.这样做是为了实现冗余.如果某些使用者崩溃,则保证所有邮件都会被其他使用者使用. 问题是我有多个消费者,并且我不希望他们在同 ..
发布时间:2020-05-09 01:26:58 其他开发

如何有选择地从AMQP(RabbitMQ)队列中删除消息?

我想选择性地从AMQP队列中删除消息,甚至不读取它们. 情况如下: 基于X类型的新信息到达的事实,发送端希望使X类型的消息过期.因为订阅者很可能还没有使用X类型的最新消息,所以发布者应该删除以前的X类型消息并将最新消息放入队列中.整个操作对订户应该是透明的-实际上,他应该使用STOMP之类的简单方法来获取消息. 如何使用AMQP做到这一点?还是在另一个消息传递协议中更方便? ..
发布时间:2020-05-09 01:26:49 其他开发

如何在RabbitMQ中撤消消息?

我在RabbitMQ上有一个工作队列,并且在请求取消工作时,我想撤回尚未开始处理的任务(它们的消息尚未得到确认),这对应于从已路由到的队列中撤回这些消息. 我没有在AMQP或RabbitMQ API中找到此功能;也许我的搜索不够好?还是我必须使用一种解决方法(虽然不难,但仍然可以)? 解决方案 我将通过让工作人员检查某种权威数据源来确定该工作是否应该进行来解决此情况.例如,工作人员将 ..
发布时间:2020-05-09 01:26:37 其他开发

为什么与Web套接字聊天需要消息队列?

我在使用网络套接字和RabbitMQ的互联网聊天中看到了很多示例( https://github.com/videlalvaro/rabbitmq-chat ),但是我不明白为什么它需要它作为聊天应用程序的消息队列. 为什么不能通过Web套接字将来自浏览器的消息发送到服务器,然后服务器又使用带有广播方法的Web套接字将消息广播到其余活动的浏览器,这是为什么呢? (也许我错过了什么) 伪 ..
发布时间:2020-05-09 01:26:33 其他开发

消息队列体系结构(客户端到Web服务器再到工作服务器再返回)

我在Heroku上运行了一个用Node JS编写的Web服务器.该服务器具有一个Web服务器进程和一个工作进程. Web服务器通过RabbitMQ队列成功将消息发送给工作程序;工作人员成功将处理后的数据返回到Web服务器.我使用随机生成的Uuid来跟踪消息,并确保将正确的消息与正确的原始消息配对. 在一个单独的项目中,我让客户端(网站)成功与Web服务器通信.现在,我需要将两者放在一起. ..

Rabbitmq-设计消息重播服务

我正在尝试设计一种重播机制,该机制将使用户能够重播队列中的消息. 对于包含多个队列和多个使用者的交换,我得出的最佳设计是: 创建一个记录器服务,该记录器将: 创建一个队列并将所有路由键绑定到该队列. 使用交易所的所有消息. 将所有消息保存到数据库. 订户重播请求. 每个订户创建一个新的交换,队列并使用与常规队列相同的绑定绑定到该交换. 订户将休息请求发送到Web服务器 ..
发布时间:2020-05-09 01:26:23 其他开发

消息代理与MOM(面向消息的中间件)

对于消息代理(例如,消息代理)之间的区别,我有些困惑RabbitMQ和面向消息的中间件.除了Wikipedia上的内容外,我找不到更多的信息.在搜索MOM时,我发现有关AMQP的信息,该信息说明这是MOM的协议..这是什么意思?那么,MOM是什么?我还读过RabbitMQ实现了AMPQ协议..那为什么让RabbitMQ成为消息代理?消息代理和MOM是同一个人吗? 希望有些人能消除我的困惑.谢 ..
发布时间:2020-05-09 01:26:03 其他开发

从客户端检查RabbitMQ队列大小

有人知道是否可以通过客户端应用程序检查RabbitMQ队列中的消息数吗? 我正在使用.NET客户端库. 解决方案 您实际上可以通过客户端进行检索.当执行queue_declare操作时,RabbitMQ返回一个包含(, , )的三个元组. queue_declare的passive参数使您可以在不修 ..
发布时间:2020-05-09 01:26:00 C#/.NET

RabbitMQ中的主题交流与直接交流

我们有一个将使用RabbitMQ的应用程序,它具有几个不同的队列,用于在层之间传递消息. 最初,我打算使用多个直接交换,每种消息类型使用一次,但是看起来像使用不同路由键绑定与队列进行单个主题交换将实现相同的目的. 进行单个交换似乎也比较容易维护,但是我想知道以一种方式进行交换是否有任何好处(如果有的话)? 选项1,使用多个直接交换: ExchangeA (type: dir ..
发布时间:2020-05-09 01:25:57 其他开发

为什么用芹菜代替RabbitMQ?

据我了解,Celery是一个分布式任务队列,这意味着它唯一要做的就是将任务/作业分派到其他服务器并返回结果. RabbitMQ是一个消息队列,仅此而已.但是,当收到消息时,工作人员可以只听MQ并执行任务.这恰好实现了Celery所提供的功能,那么为什么根本需要Celery? 解决方案 是的,您根本不需要芹菜.在设计分布式系统时,有很多选择,并且没有正确的方法来做适合所有情况的事情. ..
发布时间:2020-05-09 01:25:55 Python