rabbitmq - 当消费者在 Rabbit mq 中产生时丢失从发布者发送的消息
问题描述
我只是在探索 rabbit mq 主题https://www.rabbitmq.com/tutorials/tutorial-five-javascript.html
当我连续运行./receive_logs_topic.js "#"
(消费者)并发布消息时它工作正常。
但是当我杀死消费者并通过发布者发送消息 2-3 次并再次启动消费者时,它不会处理我之前发送的消息。
我正在与兔子队列进行比较,只要消费者回来,它就会处理待处理的消息。
只是topics
以这种方式工作还是我在搞乱一些配置?
解决方案
当您停止消费者时,它已声明的队列和绑定将被删除,因为它们是独占队列。由于 RabbitMQ 无处可路由消息,因此它们将被丢弃。
要解决此问题,您必须更改代码以使用发布者和消费者都声明的众所周知的队列(当然,使用绑定)。这样,启动哪个进程都没有关系。
注意: RabbitMQ 团队会监控rabbitmq-users
邮件列表,有时只会在 StackOverflow 上回答问题。
推荐阅读
- python - 有人可以解释这段代码来识别两个数据帧之间的差异吗?
- java - 将私钥放入带有变量的 application.yml
- excel - VBA - 从自由格式文本字符串中解析日期
- kubernetes - 使用 Kubernetes / Traefik Ingress 在本地域上启用 https
- java - 使用特定值计算税金
- c# - ACE 驱动程序在 VBA 中工作,但在 C# 中不工作 - 为什么?
- python - 为表达式索引错误的字符
- entity-framework-core - 尽管填充了值,但基于 Not Null 约束的异常
- api - 如何在 Swagger 中定义不同的模式
- html - VueJs v-for 渲染 div 但不渲染表格行?