【问题标题】:How to handle files in an SOA architecture如何在 SOA 架构中处理文件
【发布时间】:2014-10-13 23:11:47
【问题描述】:

我有一个包含一系列服务的企业服务总线。有一个 HTML5 用户界面,允许客户执行各种自助操作。 UI 使用 JavaScript,通过 API 服务器以 JSON 格式与 ESB 通信。

现在我想为客户提供上传文件的可能性。我可以对文档进行 base64 处理并将其作为 JSON 字段发送,但这似乎不对。我可以使用什么好的模式?

【问题讨论】:

  • 通过 REST 发送二进制数据需要 Base-64 编码的文档,我认为这种方法没有问题。 SOAP 服务允许您将文件作为二进制附件发送。有关更多信息,请参阅此链接:stackoverflow.com/questions/1156429/…
  • @Namphibian 我发现这种方法存在很大问题。通常 SOA 架构使用队列,并且通常对消息的大小有限制。将文件作为服务调用的一部分发送绝对不是正确的方法。
  • @Marco 是对还是错将由项目的要求来规定。我同意通过 SOAP 发送文件是违反直觉的,但它可以做到,而且该方法在技术上是合理的。这是否是一个好主意可以讨论。
  • @Namphibian 我相信它可以做到,但如果被要求对此发表意见,我会说这种方法是错误的。
  • @Marco 我完全同意你的看法。我错过了OP询问是否有更好的设计模式的问题部分。所以我赞成你的回答,因为它更有意义。我专注于技术细节。

标签: file-upload soa esb


【解决方案1】:

它听起来不正确,因为它不正确。

在这种情况下,您应该将文件写入一个只写的公共 FTP,给它一个 GUID 名称,然后向服务发送一条消息,提供有关文件的详细信息。在服务端收到包含文件详细信息的消息后,将元数据存储在持久层中并将文件复制到私有 FTP。

类似这样的:

Claim Check Pattern

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-22
    • 2020-03-24
    • 2014-09-12
    • 2012-02-07
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多