1

如果多个微服务处理需要一个大型 JASON 文件(10mb),那么最好使用的企业架构/设计模式是什么?每个微服务都需要文件中的整个数据来处理它。

4

3 回答 3

1
  • 共享大型数据集可能表明将代码库划分为服务的欠佳。同一域的所有处理最好在单个服务中完成。
  • 当多个服务确实需要对同一个数据集进行有意义的处理时——每个服务都应该有自己的副本。共享数据库通常是 - 一个坏主意!
  • 当涉及重量级数据时,在“常规”排队系统(如 RabbitMQ / SQS)中克隆数据是相当麻烦且效率低下的。
    • 诸如 Kafka / Kinesis 之类的“重量级”排队系统可能是最有效的。数据的一个副本将被持久化,每个服务都可以从“共享”流中读取它。
于 2017-08-14T05:11:33.973 回答
0

将它存储在其他微服务可以从中读取它的地方。使用 pub/sub 或 eventing - 通知感兴趣的微服务文件的发布位置。其他微服务可以自己读取。

于 2020-10-21T14:48:43.567 回答
0
  1. 客户端/系统向实现 Saga 模式的 API 发布事件,传递指向文件所在位置的链接(例如上传到 AWS S3 存储桶)。
  2. Saga 模式中的每个事件/步骤都会根据其要求处理文件。
  3. 客户端/系统可以轮询更新,或者原始 POST 可以设计为传递回调/通知服务端点。
于 2020-11-20T23:28:59.513 回答