问题标签 [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 - spring rabbit XSD 在哪里(rabbit 的架构位置:命名空间)
http://static.springsource.org/spring-amqp/docs/1.0.x/reference/html/提到了rabbit:
命名空间,但从未提到架构位置是什么。谷歌搜索(和命名约定)最终得到:
http://www.springframework.org/schema/rabbit/spring-rabbit.xsd
但是这个文件不存在。那么xsd在哪里呢?
java - RabbitMQ basic.get 和确认
我正在调用:
但是,当我调用 时basicGet
,队列中的消息停留在“就绪”状态,而不是“未确认”状态。我希望它们处于未确认状态,以便我可以要么basic.ack
它们(从而将它们从队列中丢弃),要么basic.nack
它们
java - 没有连接的 AMQP/RabbitMQ 通道何时死亡?
我有一个简单的 RabbitMQ 测试程序随机排列消息,另一个读取它们,全部使用 Spring-AMQP。如果消费者死亡(例如在没有机会关闭其连接或通道的情况下杀死一个进程),它没有确认的任何消息似乎永远保持未确认状态。
我看到许多参考资料(例如这个问题)说通道在没有连接时会死掉,并且剩余的未确认消息将被重新传递。这不是我看到的行为 - 相反,我得到越来越多的标记为 IDLE 的频道列表和越来越多的标记为正在运行但没有活动的连接列表。
是否需要一些配置来注意一旦进程被杀死,连接就死了?
编辑: 我在 VirtualBox VM 中运行 rabbitmq 服务器,它显然不能通过 NAT 正确管理死的入站连接。这适用于直接在物理主机上运行的 mq 服务器。
java - 我怎么知道我的消息是用 spring amqp 成功发送的?
我正在使用 RabbitTemplate 类使用 spring amqp 写入 RabbitMQ 队列。我使用 convertAndSend 方法将消息发送到队列。这在正常情况下效果很好,但如果队列不存在,它似乎会静默失败。不会引发异常,并且不会将错误/调试消息记录到记录器中。
对我来说确保消息已送达的最佳方式是什么?
这是代码当前正在执行的操作的示例。
spring - Spring框架中StatefulRetryOperationsInterceptor类的问题
我对“StatefulRetryOperationsInterceptor”类有问题,因为我不知道如何使用它,因为互联网上没有源示例,所以我请你帮忙:)。因此,如果您对使用该类有任何经验,请您在这里发布一些简单的源示例,我将不胜感激。谢谢
rabbitmq - RabbitMQ 回滚事务并重新路由消息
条件:
1) 使用休眠事务管理器 2) 队列被标记为事务性 3) 使用与 spring-amqp 捆绑在一起的 SimpleMessageListenerContainer 来触发消息的消费者。
设想 :
消费者由于某些意外错误而产生异常,导致休眠事务回滚,并且消息被重新排队。这是由容器处理的。
由于 SimpleMessageContainer 的编写方式,我找不到从队列中删除消息并让平台事务管理器回滚的方法。通道和事务管理器要么都回滚,要么操作通过。
我想做的是通过在消息上填充一个字段来将消息标记为异常失败,这样当它返回给另一个消费者时,我可以使用 AOP 建议分析消息的状态,然后将消息重新路由到另一个交换。
我似乎无法更改消息的正文,或添加标头以在 rabbitmq 中标记消息。每次返回的消息都是原始消息。
我如何标记消息?
其他人如何在回滚事务的同时设法解决异常消息的重新路由?
spring - 使用 Spring AMQP 的 webapp 是否被认为是 1 个客户端?
嗨,我想知道我是否创建了一个使用 Spring AMQP 的 webapp。那是单个 webapp 1 AMQP 客户端吗?还是用户发出的每个请求都会导致 AMQP 调用客户端,因此可能有 x 个客户端?
imap - 如何通过 spring/amqp/rabbit 收听数千个 imap 空闲收件箱
用例是让服务器连接到数千个用户的电子邮件帐户并在 java 中嗅探传入的邮件,最好使用 java mail 和 spring integration/amqp/rabbit mq 类型的可扩展基础架构。以及 imap 空闲类型连接并根据需要添加服务器处理节点。
使用 imap 空闲入站适配器可以轻松实现单个入站通道。您可以在 XML 中配置一些。但是,如果您需要一个包含数千个这些适配器的持久侦听器/iapidlechannel 适配器队列,并且需要动态添加新的用户连接以进行服务器处理。这将是一个挑战。还需要故障处理,如果 java 侦听器死亡或服务器重新启动所有这些侦听器,它们的配置也会重新启动与重建数千个这些连接并在某些连接失去空闲接收能力而不重建空闲接收的所有用户连接时恢复。
任何想法都受到欢迎,因为搜索了很多但找不到任何东西?这似乎是关于打开电子邮件接收连接的重要可伸缩性问题。
spring - 将列表存储/序列化为消息 Spring AMQP
我是使用 RabbitMQ 的 Spring AMQP 的新手。我知道这个问题解决了一个更广泛的问题。我想将对象列表存储到可以发送给消费者的消息中。谁能提供一个简单的解决方案来解决这个问题?
我知道序列化可以成为一种解决方案,但对于我正在使用的简单应用程序来说,这将是一种过度杀伤力。消息本质上是异步的。还有其他方法吗?
rabbitmq - Spring AMQP/RabbitMQ 和 Hibernate 事务管理器
我有一个使用 Hibernate 和 PostgreSQL 的 Spring 应用程序。它还使用 Spring AMQP (RabbitMQ)。
我正在使用配置如下的 Hibernate 事务管理器:
我正在使用 SimpleMessageListenerContainer 进行异步消息接收,配置为:
所以基本上我已经指定消息的接收需要是事务性的。消息侦听器调用一个服务,该服务可以具有使用@Transactional 注释的方法,并可能在数据库上执行 CRUD 操作。
我的问题是,使用 HibernateTransactionManager 在 SimpleMessageListenerContainer 级别管理事务是否有问题?使用 DB 事务管理器来包装从 RabbitMQ 接收消息会不会有任何问题?
我不期待 XA 在这里。我只想确保如果服务对数据库的任何操作失败,消息不会被 RabbitMQ 代理确认。