问题标签 [spring-amqp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring - 0-9-1 在 AMQP 0-9-1 协议中代表什么
我在 AMQP 0-9-1 协议中找不到 0-9-1 背后的确切逻辑。请有人解释一下。
spring - Spring AMQP Java 客户端中的队列大小
我使用 Spring amqp 1.1 版本作为我的 java 客户端。我有一个大约有 2000 条消息的队列。我想要一个检查这个队列大小的服务,如果它是空的,它会发送一条消息说“所有项目已处理”。
我不知道如何获取当前队列大小?请帮忙
我用谷歌搜索并找到了早期版本 1.0 中存在的一个类“RabbitBrokerAdmin”。我认为它现在不存在于 1.1 中。
获取当前队列大小的任何指针?
java - Spring AMQP:想将消息放入队列并立即发送ACK
我编写了 Java 应用程序,它将消息发送到 RabbitMQ。然后 Flume 从 RabbitMQ 队列中获取消息。我很感兴趣没有人从队列中提取消息,除了水槽。
我的应用程序使用 Spring AMQP Java 插件。
问题:
使用下面的代码,消息进入 RabbitMQ 队列并永远保持“未知”。据我了解,RabbitMQ 正在等待来自 MessageListener 的 ACK,但 MessageListener 永远不会 ACK。有人知道如何解决吗?
编码:
rabbitmq - RabbitMQ 突然收不到来自 Spring AMQP 的消息
我一直在将我的开发环境从 Linux 转移到 Mac,突然间我面临着奇怪的 RabbitMQ 行为。
我有 Ubuntu 盒子,在上面运行 RabbitMQ 2.8.7-1,我在同一个盒子上做了开发工作。我一直在运行我的测试代码(如下所示),Rabbit 很高兴收到所有消息。
现在我搬到了 Mac 机器(主机 A),我在其中运行带有 Linux 的 VirtualBox(主机 B),在该机器上运行 RabbitMQ,其配置与以前的 Linux 机器相同。我在 Mac 上运行我的开发环境,它在 VM 中调用 Rabbit :)。但是什么也没来,所以我使用 Wireshark 来追踪通信,这似乎还可以:
所以看起来消息已经收到,但可能没有被代理处理?登录客户端也告诉我消息已发布。
我完全不知道从哪里开始解决问题,为什么它以前可以工作而不是现在,问题可能出在哪里?
编辑:好的,我尝试从 RabbitMQ 教程中实现简单的发送器,它看起来像挂在 close() 上,因为应用程序仍在运行并且未到达 close() 之后的代码。
java - 配置 Spring Integration 聚合器以组合来自 RabbitMq 扇出交换的响应
我正在尝试使用 Spring Integration 配置以下内容:
- 向频道发送消息。
- 将此消息发布到与 n 个消费者的 rabbit fanout (pub/sub) 交换。
- 每个消费者提供一个响应消息。
- 在将这些响应返回给原始客户端之前,让 Spring Integration 聚合这些响应。
到目前为止,我有一些问题......
我正在使用发布订阅通道来设置
apply-sequence="true"
属性,以便设置correlationId、sequenceSize 和sequenceNumber 属性。这些属性被DefaultAmqpHeaderMapper
.DEBUG headerName=[correlationId] WILL NOT be mapped
sequenceSize 属性仅设置为 1,即使在扇出交换中注册了 2 个队列。大概这意味着消息会过早地从聚合器中释放。我希望这是因为我误用了发布订阅频道以便使用
apply-sequence="true"
,而且说只有一个订阅者是非常正确的,int-amqp:outbound-gateway
.
我的出站 Spring 配置如下:
我的 rabbitMQ 配置如下:
消费者看起来像这样:
任何建议都会很棒,我怀疑我在某个地方弄错了棍子……
基于 Gary 评论的新出站 spring 配置:
spring-integration - 如何使用 Spring AMQP/Spring 集成通过程序确认消息
1)服务器向客户端发送消息。
2) 入站通道适配器配置为等待来自消费者的“手动”确认模式操作
3)“TaskBundlereceiver”bean 正在实现“ChannelAwareMessageListener”,在实现方法中,我正在执行消息确认。
我没有看到“TaskBundlereceiver”被执行。我错过了什么吗?
以下是我已解释的步骤的配置详细信息。
感谢您的投入。
XML配置:
rabbitmq - spring-amqp HA 支持
我使用 spring-amqp 连接到一组 rabbitmq 节点(A、B 和 C)。假设集群中的一个 rabbitmq 节点关闭(C 关闭)。此外,假设有两个消息接收器(Receiver_1 和 Receiver_2)正在使用与节点 C 的连接。当 C 出现故障时,Receiver_1 和 Receiver_2 是否会自动切换它们的连接以连接到 A 或 B?当 C 再次出现时会发生什么?某些接收器连接是否被重新分配以使用 C ?
java - Spring AMQP - 重复消息
我正在处理一个大容量流 ~ 每秒 500+ 条消息,使用具有 10 个并发消费者的 SimpleMessageListenerContainer 从 Spring AMQP+Rabbit 消耗数据,我必须每 15 分钟对 Db 进行一些检查并重新加载某些属性以进行处理,这是通过石英触发器完成的,该触发器每 15 分钟触发一次,停止 SimplelistenerContainer,完成必要的工作并再次启动 Container。
当应用程序启动时一切正常,当触发器触发并且容器重新启动时,我看到多次传递相同的消息,这会导致很多重复。消费者没有抛出任何异常。
消息监听器
在应用启动期间设置并行消费者并启动消费者
石英触发器
spring-amqp - 事务回滚时在队列末尾重新排队消息
我正在使用SimpleMessageListenerContainer
. 该消息调用我的服务层上的方法,我故意抛出异常以测试事务的回滚。我希望将消息发送回队列的末尾,但它不会发生。有人可以帮助我吗?
rabbitmq - 有没有办法以编程方式配置铲子?
我们正在开发一个 Spring-AMQP - RabbitMQ 应用程序。我们想使用 shovel 将消息从本地队列复制到远程队列,但我们希望从 spring 应用程序中进行消息服务的几乎所有配置。
在这一点上,我们能够从应用程序本身创建队列、交换等,但我们找不到从同一个应用程序配置铲子的方法。有没有办法做到这一点?
如果我们使用联邦插件而不是铲子,有没有比使用 Spring-AMQP 铲子更好的配置方法?