我希望我的系统保证即使系统关闭也不会丢失数据。
这意味着系统不能错过请求消息。所以,我会改变接受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/