jdbc 集群模式下的支持通道

jdbc backed channel on a cluster mode

我想使用 jdbc 支持的消息通道。阅读文档说它受支持,但之后我在论坛中发现一个线程明确表示不支持。如果支持,能否请您澄清一下?在这种情况下,你能指导我这样做吗?提前致谢!

文档:http://docs.spring.io/spring-integration/docs/4.2.0.BUILD-SNAPSHOT/reference/html/jdbc.html#jdbc-message-store-channels

主题论坛:http://forum.spring.io/forum/spring-projects/integration/104995-spring-poller-against-jdbc-backed-queue-channel-clustered-mode

我猜你指的是带有 MessageStore 参考的 <queue> 频道。 有了它,我们真的可以拥有集群范围的通道,它允许每个集群只传输一条消息。这意味着只有一个消费者能够从该持久性队列中提取消息,并且 3is 保证在系统故障期间不会丢失消息。

我认为 Spring 集成为您提供了答案,正是 JdbcChannelMessageStore

您所面对的论坛post已经够老了。从此世界发生了翻天覆地的变化。

例如,注意 OracleChannelMessageStoreQueryProvider 及其 getPollFromGroupQuery() 实现。有一个查询提示,如:

FOR UPDATE SKIP LOCKED

保证每个事务只有一行。其他事务跳过锁定的行并锁定它们自己的行。如果交易成功,消息行将被删除。

所以,我希望这就是你问的。