Spring 集成 : QueueChannel guarantee no data loss?

标签 spring spring-integration

我希望我的系统保证即使系统关闭也不会丢失数据。
这意味着系统不能错过请求消息。所以,我会改变接受http请求的方式。现在,我在 spring 集成中使用 http 网关/webservice 网关。但是,即使系统死机,这也不会收到消息。所以,我想在 http 客户端和 http 接收器之间添加队列。所以,我想使用队列 channel 。这是问题。

① 必须安装activemq或rabbitmq等其他队列程序,并且必须连接spring集成中的队列 channel ?

② 与 Spring 集成的最佳组合是哪一种?我听说兔子MQ是最好的。

请给我一个详细的解释。谢谢。

最佳答案

首先你的描述不清楚...

如果您不想丢失来自 QueueChannel 的消息使用一些持久性 MessageStore , 喜欢 JdbcChannelMessageStore :
http://docs.spring.io/spring-integration/docs/latest-ga/reference/html/system-management-chapter.html#message-store

另一边有channel wrappers对于 AMQP 以及 JMS:

http://docs.spring.io/spring-integration/docs/latest-ga/reference/html/amqp.html#d4e5846

http://docs.spring.io/spring-integration/docs/latest-ga/reference/html/jms.html#jms-channel

这确实为您的用例提供了相同的持久性持久性和容错选项。

关于。 activemq VS rabbitmq .我可以说,根据我自己的经验,最后一个更好,通过 Spring Integration 的配置和使用(Spring AMQP 在 shell 下)。而且它的性能确实更好。

您可以在 Internet 上找到的所有其他信息。

关于 Spring 集成 : QueueChannel guarantee no data loss?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26374581/

相关文章:

json - Spring MVC : How to respond a http request with JSON object and view together?

java - Spring未在数据库中保存多对多映射

java - 如何从 Spring 集成中完成重新排序器中的分组

java - 启动 Spring Boot 应用程序并暂停 Spring Integration Kafka 消费者

java - 为什么使用 Java 配置配置的 JPAPagingItemReader 的销毁方法 'close' 失败?

spring - 将数据从 html 发送到 Thymeleaf 中的 Controller ?

java - 在基于 Spring 的 Java 服务器上管理与 Web 客户端的异步/推送通信的最佳方式

spring - 多个 Spring 集成聚合器可以共享同一个消息存储吗?

http - Spring XD - 找不到名称为 'ftphdfs' 且类型为 'source' 的模块

java - 在 Java Spring Integration 中,变压器元素可以包含路由器功能吗?