繁体   English   中英

Apache Camel 文件队列需要 NOOP 消费者的目录写入权限?

[英]Apache Camel File Queue Requires Directory Write Permissions For NOOP Consumer?

我在骆驼中配置了一个简单的 NOOP 文件使用者,如下所示:

file:///tst?delay=10000&idempotent=false&include=fileMatch&noop=true

通常,运行骆驼应用程序的用户将没有对 /tst 的写权限,但对 /tst/fileMatch 有读写权限。 不幸的是,我发现骆驼甚至不会轮询该文件,除非它对 /tst 具有写权限。

有没有解决的办法?

自上次回答以来,骆驼文件组件发生了相关变化:

请注意,从 Camel 2.10 开始,读锁发生了变化, fileLock和 rename 也将使用 markerFile ,以确保不会拾取运行在另一个节点(例如集群)上的另一个 Camel 消费者可能正在处理的文件。 这仅受文件组件支持(不支持 ftp 组件)。

因此,在 Camel 2.10 或更高版本中,您仍然需要写入权限才能使用 readLock=fileLock。 您可以使用readLock=none ,明显的影响是不会有读锁。

当我这么累的时候,我不应该问问题。 这不起作用的原因(在组件描述中明确说明)是默认的readLock策略是markerFile (需要在目录中写入标记文件)。 通过将其更改为readLock=fileLock ,我不再需要目录的写权限来读取文件,因为文件系统锁被放置在正在读取的文件上。

工作 URI 是:

file:///tst?delay=10000&idempotent=false&include=fileMatch&noop=true&readLock=fileLock

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM