Java 使用ApacheCamel根据S3事件通知传输S3文件
我有一个应用程序(在EC2实例上运行),它解析到达S3存储桶的新日志文件。我在这个bucket上设置了S3通知,以便在put请求时将消息放入SQS队列。目的是将新到达的日志文件从S3传输到EC2实例 我认为apachecamel将是解决这个问题的理想人选。我对该解决方案有以下问题/意见,并非常希望得到一些反馈:Java 使用ApacheCamel根据S3事件通知传输S3文件,java,amazon-s3,apache-camel,amazon-sqs,Java,Amazon S3,Apache Camel,Amazon Sqs,我有一个应用程序(在EC2实例上运行),它解析到达S3存储桶的新日志文件。我在这个bucket上设置了S3通知,以便在put请求时将消息放入SQS队列。目的是将新到达的日志文件从S3传输到EC2实例 我认为apachecamel将是解决这个问题的理想人选。我对该解决方案有以下问题/意见,并非常希望得到一些反馈: 我们可以使用驼峰路由从SQS读取消息,然后从JSON消息中提取对象键。是否可以在另一个将此对象从S3复制到本地FS的驼峰路由(使用S3组件)中使用此对象键?从外观上看,camels3组件
有一个SNS来解耦文件处理和文件传输是很好的。但是你真的需要这个吗?这将增加应用程序的复杂性。如果您只想将传入文件处理到S3 bucket而不丢失,最简单的方法是创建一个bucket,称为“incoming”,另一个调用为“processed”。每次应用程序都可以扫描传入的bucket并对其进行处理,完成后将文件放入已处理的bucket 您需要注意的一件事是标记正在处理的文件以避免冲突。你可以给它加上特殊的后缀 AWS还提供了第三种方式来执行“事件通知”调用“Lambda函数”。你也可以看看。它可以启用一些简单的处理程序,而不需要自己编写额外的应用程序