【问题标题】:Kaha DB message store to persist Files in camelKaha DB 消息存储在骆驼中持久化文件
【发布时间】:2016-11-29 18:32:37
【问题描述】:

这是我的骆驼路线:

<route>
  <from uri="file:///c:/"/>
  <to uri="file:///D:/"/>
</route>

如果这条路线出现任何故障,我想将文件永久存储在 Kaha DB 中,这样文件就不会丢失。但我不知道blueprint.xml Kaha DB 持久性配置用于存储文件。而我的Activemq.xml文件如下

<broker brokerName="kahaDB_Persistence" persistent="true" useShutdownHook="false">
    <persistenceAdapter>
        <kahaDB directory="${data}/kahadb/"
                journalMaxFileLength="100mb"
                concurrentStoreAndDispatchQueues="false"
                concurrentStoreAndDispatchTopics="false"/>
    </persistenceAdapter>
</broker>

请通过考虑上述路线告诉我如何从blueprint.xml 连接到这个 KahaDB。

【问题讨论】:

    标签: apache-camel blueprint


    【解决方案1】:

    Camel 的文件组件具有内置的存档功能,可以保存已处理的文件。它将它们复制到一个名为“.camel”的文件夹中,但可以使用配置选项进行更改。

    我不推荐使用 KahaDB,因为它不符合“适合工作的工具”的口号。

    Camel File component docs

    【讨论】:

    • Maat 感谢回复,我不希望文件是 .camel 或任何其他目录。一旦 ESB 关闭,这些就会消失。也尝试过 noop=true ,但是一旦重新启动 ESB,它也会处理旧文件。我的场景就像消息持久化一样,一旦消息传递给消费者,它就会从数据库中删除。
    • 我不知道你对重启后文件消失的意思。我们使用 .done 和 .failed 文件夹进行文件归档。有用。至于 noop=true 并在重启时重新处理旧文件,您需要研究幂等设置/选项以避免这种情况,但将文件保留在传入文件夹中可能无论如何都不是正确的解决方案。
    • +1 史蒂夫。 user1468077描述的行为与默认的Camel文件组件不一致,与单独使用KahaDB不一致。
    猜你喜欢
    • 2012-09-30
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多