rabbitmq相关内容
我们有一个基于 rabbitMQ 和 Celery 的分布式架构.我们可以毫无问题地并行启动多个任务.扩展性好. 现在我们需要远程控制任务:暂停、恢复、取消.我们找到的唯一解决方案是在 Celery 任务中对另一个任务进行 RPC 调用,该任务在 DB 请求后回复命令.Celery 任务和 RPC 任务不在同一台机器上,只有 RPC 任务可以访问数据库. 您对如何改进它并轻松与正在进行
..
我正在尝试创建一个订阅多个队列的消费者,然后在消息到达时对其进行处理. 问题是,当第一个队列中已经存在一些数据时,它会消耗第一个队列,而永远不会去消耗第二个队列.但是,当第一个队列为空时,它确实会转到下一个队列,然后同时消耗两个队列. 我首先实现了线程,但想避开它,当 pika 库为我完成它时没有太多复杂性.以下是我的代码: 进口鼠兔mq_connection = pika.Bloc
..
我有一个通用的独立 JMS 应用程序,它与以下 JMS 提供程序 WebSphere、HornetQ 和 ActiveMq 一起使用.我将 Context.INITIAL_CONTEXT_FACTORY 和 Context.PROVIDER_URL 作为参数传递给我的应用程序,并通过执行类似的操作从它们中创建命名上下文 属性 environmentParameters = new Propert
..
请想象一下,您有如下方法: public void PlaceOrder(Order order){this.SaveOrderToDataBase(order);this.bus.Publish(new OrderPlaced(Order));} 订单存入数据库后,将一个事件发布到消息队列系统,以便同一台或另一台机器上的其他子系统处理. 但是,如果 this.bus.Publish(n
..
我有类似 RabbitMQ 上的作业队列,并且在请求取消作业时,我想撤回尚未开始处理的任务(它们的消息尚未被确认),这对应于从它们被路由到的队列中收回这些消息. 我没有在 AMQP 或 RabbitMQ API 中找到这个功能;也许我搜索得不够好?还是我必须使用解决方法(这并不难,但仍然如此)? 解决方案 我会通过让工作人员检查某种权威数据源来确定工作是否应该继续来解决这种情况.例如
..
好的,这里是正在发生的事情的概述: M 所以我有一个exchange,推送到多个队列,每个队列都有一个任务,一旦所有任务都完成了,才可以启动队列4. 因此,唯一 id 为 1234 的消息被发送到交换器,交换器将其路由到所有任务队列(Q1、Q2、Q3 等...),当消息 id 为 1234 的所有任务都完成后,运行消息 ID 1234 的 Q4. 我该如何实现? 使用 S
..
我想默认为我的所有队列定义镜像.一旦节点启动,我目前必须 使用 rabbitmqctl : rabbitmqctl set_policy ha-all ""'{“ha-mode":“所有"}' 如果我的一个节点发生故障,我必须记住在重启时重新执行该代码. 有没有办法自动配置我的节点以使用镜像队列? 解决方案 策略可以在定义文件中指定,可以从你的配置文件中引用. 我如何设置特
..
我的 Java 应用程序将消息发送到 RabbitMQ 交换器,然后交换器将消息重定向到绑定队列.我将 Springframework AMQP java 插件与 RabbitMQ 一起使用. 问题:消息进入队列,但它停留在“Unacknowledged"状态,它永远不会变成“Ready". 可能是什么原因? 解决方案 Unacknowledged 消息意味着它已被您的消费者读
..
我通过 Celery 将 RabbitMQ 与 Django 一起使用.我使用的是最基本的设置: # RabbitMQ 连接设置BROKER_HOST = '本地主机'BROKER_PORT = '5672'BROKER_USER = '客人'BROKER_PASSWORD = '客人'BROKER_VHOST = '/' 我导入了一个 Celery 任务并将其排入队列以在一年后运行.从 iP
..
我正在研究找出适合我们未来产品的消息传递解决方案,但我真的无法弄清楚这一点. 有很多 AMQP 0.9.1 实现(RabbitMQ、Apache Qpid、OpenAMQ 等等),但没有 AMQP 1.0 实现,尽管 1.0 已在 2011 年 10 月完成.好吧,除了 SwiftMQ [1]. 阅读 1.0 后,它似乎与 1.0 之前的规范大相径庭,因此似乎可以理解的是,对运行良好的
..
我正在尝试运行以下命令 rabbitmq-plugins.bat 启用 rabbitmq_management 它给了我这样的错误: 11:36:55.464 [错误] 无法创建 cookie 文件 'h:/.erlang.cookie': enoent 我使用的是 Windows 7,Erlang 版本 R16B01 和 RabbitMQ-Server 版本 3.1.5 我
..
我按照官方文档中提到的方式安装了erlang和rabbitmq.但是,当我这样做时 C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.0\sbin>rabbitmqctl add_user XXXXXX YYYYYYY 它给了我以下错误... 错误:无法在节点“rabbit@C001741998"上执行操作.请参阅下面的诊断
..
我一直在试图弄清楚在使用 pika 时应该使用哪种连接形式,据我所知,我有两种选择. BlockingConnection 或 SelectConnection,但我不太确定这两者之间的区别(即 BlockingConnection 阻塞是什么?等等) pika 的文档说 SelectConnection 是连接到 rabbit 的首选方式,因为它提供了“多种事件通知方法,包括 sel
..
如果我的理解是正确的,您实际上不能在不将它们取出并放回它们的情况下查看 rabbit 队列中的消息.没有办法使用 rabbitmqctl 来检查队列. 在某些调试上下文中,了解当前队列中的内容非常有用.有没有办法获取消息?另外,Rabbit 的设计是什么让这个过程变得繁琐? 解决方案 我个人还没有使用过这个,但是我看到了RabbitMQ的管理插件,我认为可以让你监控队列. ht
..
我在互联网上看到了很多使用 Web 套接字和 RabbitMQ 的聊天示例(https://github.com/videlalvaro/rabbitmq-chat),但是我不明白为什么它需要它作为聊天应用程序的消息队列. 为什么不能通过 Web 套接字将消息从浏览器发送到服务器,然后服务器再使用具有广播方法的 Web 套接字将该消息广播到其余活动浏览器?(也许我错过了什么) 伪代码示
..
来自 Spring Boot 教程:https://spring.io/guides/gs/messaging-rabbitmq/p> 他们给出了一个仅创建 1 个队列和 1 个队列的示例,但是,如果我希望能够创建多于 1 个队列怎么办?怎么可能? 显然,我不能两次创建同一个 bean: @Bean队列队列(){返回新队列(queueNameAAA,false);}@豆角,扁豆队列队列(
..
我对 docker、celery 和 rabbitMQ 比较陌生. 在我们的项目中,我们目前有以下设置:1 个运行多个 docker 容器的物理主机: 1x rabbitmq:3-管理容器 # 从 docker hub 拉取镜像并安装docker pull rabbitmq:3-management# 运行 docker 镜像docker run -d -e RABBITMQ_NOD
..
我正在运行一个 Spring AMQP 消息侦听器. 公共类 ConsumerService 实现 MessageListener {@自动连线兔子模板 rabbitTemplate;@覆盖公共无效onMessage(消息消息){尝试 {testService.process(消息);//这个流程方法可以抛出业务异常} 捕捉(业务异常 e){//这里我们可以只记录异常.如何进行重试尝试?} 捕捉
..
我设置了 RabbitMQ 以解析来自外部 API 的大约 20.000 个请求,但几分钟后它一直超时.它确实可以正确解析总共 20.000 个请求中的大约 2000 个. 日志文件说: =INFO REPORT==== 16-Feb-2016::17:02:50 ===接受 AMQP 连接 (127.0.0.1:33091 -> 127.0.0.1:5672)=错误报
..
我在 C# 中使用带有 EasyNetQ 库的 RabbitMQ.我在这里使用 pub/sub 模式.我还有一些问题希望有人能帮助我解决: 当使用消息时出现错误,它会自动移到错误队列中.如何实现重试(以便将其放回原始队列,并且当它无法处理 X 次时,它会被移至死信队列)? 据我所知,总是有 1 个错误队列用于转储来自所有其他队列的消息.如何为每种类型设置 1 个错误队列,以便每个队列都有自
..