【问题标题】:spring integration jdbc adapter for multiple nodes用于多个节点的spring集成jdbc适配器
【发布时间】:2015-07-17 21:09:15
【问题描述】:

我使用 jdbc inbound-channel-adapter 和下面的典型配置从 MYSQL DB 中检索记录。问题是如何让 jdbc inbound-channel-adapter 在多节点环境中工作?不同的节点将有机会获得一个相同的记录来处理。我知道这可能是一个老问题,但到目前为止我找不到解决方案。

<int-jdbc:inbound-channel-adapter query="select * from messages where state='NEW'"
    channel="jdbcChannel" data-source="datasource" update="update messages set state='PROCESSING' where id in (:id)"
    row-mapper="messageRowMapper" max-rows-per-poll="1">
</int-jdbc:inbound-channel-adapter>

【问题讨论】:

    标签: spring-integration


    【解决方案1】:

    是的,您应该为&lt;poller&gt; 提供交易,正如 Gary 指出的那样,但此外,您应该保证一个交易会阻塞另一个交易,直到它完成。为此,您应该为您的SELECT 提供FOR UPDATELOCK IN SHARE MODE 提示。

    更多信息在MySQL Docs 或这个答案中:MySQL 'select for update' behaviour

    【讨论】:

      【解决方案2】:

      【讨论】:

        猜你喜欢
        • 2012-07-04
        • 1970-01-01
        • 2015-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多