我们有一个系统会向我们的系统发送大量文件。
我们宁愿不在文件系统之上构建一个层来轮询和触发该文件的相应进程,因为文件系统没有提供诸如事务、隔离等之类的好处。
我们正在考虑使用 Apache Camel 来监视文件,然后将消息发送到队列以指示其到达。由于我们正在处理消息队列,因此我们将获得随之而来的所有好处,例如消息队列的透明性,成功时发送确认等。
这听起来像是一件好事,还是有更好的文件系统处理模式?
我们有一个系统会向我们的系统发送大量文件。
我们宁愿不在文件系统之上构建一个层来轮询和触发该文件的相应进程,因为文件系统没有提供诸如事务、隔离等之类的好处。
我们正在考虑使用 Apache Camel 来监视文件,然后将消息发送到队列以指示其到达。由于我们正在处理消息队列,因此我们将获得随之而来的所有好处,例如消息队列的透明性,成功时发送确认等。
这听起来像是一件好事,还是有更好的文件系统处理模式?
如果您需要将文件路由和传递到不同的服务器,路由它们等,那么您的方法可能很好。你需要三思而后行。
消息事务可以回滚,但文件不能。此外,您确实需要考虑您想要解决的所有情况 - 在序列图中绘制所有可能性,以确保您的解决方案不会太复杂并且所有错误情况都得到处理。
也许,Camel 获取文件并将它们路由到的解决方案就足够了?然后你可以实现日志记录等。但它不会是跨国家的。
ActiveMQ 有这样的情况,称为BLOB 消息,旨在启用带外通道中的大文件传输,但使用 JMS 消息来控制“信号”。它可能适合也可能不适合您的情况,具体取决于您的具体要求。