我正在尝试实现一个camel-spring引导应用程序,它使用filecomponent在目录上进行轮询。我还想支持集群,这意味着这个camel-spring引导应用程序的多个示例可以从目录中启动和使用。
我试图用kafkaidempotentrepository在文件使用者上实现幂等存储库。但是,当我同时启动两个示例时,两个示例都使用一个进入目录的文件,并且两个示例都进行广播action:add for 输入我的文件名。
文件组件的配置如下:
file:incoming?readLock=idempotent&idempotentRepository=#myKafkaRepo&readLockLoggingLevel=WARN&shuffle=true
集群幂等存储库上的所有示例都是用hazelcast实现的,对于我来说,从操作的Angular 考虑,很难强加给我的用户。
我的问题:kafkaidempotentrepository支持集群幂等存储库吗?如果没有,您建议使用哪种实现?
1条答案
按热度按时间1sbrub3j1#
kafka::apache camel-幂等存储库文档
在启动时,示例订阅主题并将偏移倒带到开头,将缓存重建到最新状态。在长度为polldurationms的一次轮询返回0条记录之前,不会认为缓存已预热。启动将不会完成,直到缓存已预热,或30秒过去;如果发生后者,则幂等存储库可能处于不一致的状态,直到其使用者赶上主题的结尾。
我的意见
这取决于您需要记住多少最近处理的记录以及主题的保留期。
如果可以将主题的保留时间设置为足够大,以满足要记住的记录数要求,但足够小,以使缓存预热可以在不到30秒的时间内完成,那么就开始吧。