我们需要解析大量传入文件(进入目录)并处理它们并将结果放到每个文件的AWS kinesis上。
文件的频率可以是每天60,000,文件可以每15秒到达一次。每个文件可能包含大约1000个条目。
Spring-integration可以处理这个负载吗?
处理此类卷会有任何问题吗?
当文件进入入站通道适配器时,我们可以为每个文件执行服务激活器吗?
我认为我们需要在带有轮询器的通道上使用任务执行器?有什么例子吗?
任务执行者会以多线程方式调用服务激活器吗?
任何指针都会有所帮助。任何代码示例的链接都会很好。
答案 0 :(得分:1)
这不是人们在这里问的问题 - 在一个线程中问题太广泛和太多。我假设即使我回答所有这些问题,你也会提出更多问题,因此对于Q& A聊天来说并不好。无论如何:
是的,Spring Integration可以解决这个问题。您可以使用简单的FileReadingMessageSource
定期轮询目录。
可以将每个文件(出站消息payload
)提供给FileSplitter
以逐行解析。
在拆分器之后,您确实可以使用ExecutorChannel
并行处理这些行。
只要它是线程安全的,就可以在多线程环境中调用Service Activator。
最后,您可以使用KinesisMessageHandler
将记录发送到AWS Kinesis。是的,这个也可以在不同的线程中使用。
您可以在Spring Integration Reference Manual中找到所有信息。一些Samples也可能对您有所帮助。此外,还有Spring Integration AWS Extension。