java - 与外部系统传输数据的技术

标签 java interface communication message-queue

我们有一个与外部系统的接口(interface),我们可以从外部系统获取平面文件并处理这些文件。目前,我们每天运行几次作业,检查文件是否位于 ftp 位置,然后处理它是否存在。 我最近读到,使用文件系统作为消息代理是一个坏主意,这就是我提出这个问题的原因。有人可以澄清像这样的情况是否适合使用其他工具,如果适合的话,哪一个? 我们的应用程序是一个基于 java 的应用程序。

最佳答案

您应该问的第一个问题是“它有效吗?”。

如果答案是肯定的,那么您应该对改变持谨慎态度,因为您认为这是一个坏主意。我听说巧克力可能对你不好,但我不会放弃它:-)

您可能会遇到潜在的问题,例如文件在您不知情的情况下被删除,或者尝试处理仅传输了一半的文件(尽管有一些方法可以缓解这两种情况) ,例如前一种情况下的权限,或者后一种情况下使用哨兵文件或内容检查)。

就我个人而言,我更喜欢消息队列系统,例如 IBM 的 MQ 或 JMS(因为它们就是为此而构建的,而且它们确实让生活变得更轻松),但是,根据上面的第二段,只有当满足以下任一条件时:

  • 当前解决方案出现或变得明显的问题;或
  • 您有一些空闲时间和金钱可以用于不必要的返工。

最后一个项目符号需要扩展。虽然这项工作可能是不必要的(就修复不存在的问题而言),但这并不一定意味着它毫无用处,特别是如果它可以提高性能或安全性,或减少维护工作。

关于java - 与外部系统传输数据的技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8874868/

相关文章:

java - 尽管 SortedSet 是接口(interface)而不是类,但为什么允许将元素添加到 SortedSet

C# - 在哪里放置接口(interface)扩展?

.net - 与正在运行的服务通信

java - 我可以使用多线程一次多次进行相同的休息调用吗?

java - 意外的顶级异常 : com. android.dex.DexException:多个 dex 文件定义

c# - 这是什么语法,将接口(interface)初始化为类数组? (新的 IItemTransform[0])

java - 将值返回到 "opener"的 GWT 对话框

matlab - Fortran与Matlab的通信

java - 我可以将注释注入(inject)到 pojo 中吗

Java:捕获系统错误