什么微服务模式适合传输大数据文件

时间:2017-08-14 03:19:17

标签: design-patterns microservices enterprise-architecture

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

3 个答案:

答案 0 :(得分:0)

  • 共享大型数据集可能表示将代码库划分为服务的次优。优选的是,同一域的所有处理都将在单个服务中完成。
  • 当多个服务确实对同一数据集进行了有意义的处理时 - 每个服务都应该拥有自己的副本。共享数据库通常是一个坏主意!
  • 当涉及重量级数据时,将数据克隆到"常规"排队系统(如RabbitMQ / SQS)非常麻烦且效率低下。
    • A"重量级"排队系统,如Kafka / Kinesis - 可能是最有效的。将保留一份数据副本,并且每个服务都可以从"共享"流。

答案 1 :(得分:0)

将其存储在其他微服务可以读取的位置。 使用发布/订阅或事件-通知感兴趣的微服务文件的发布位置。其他微服务可以自己读取。

答案 2 :(得分:0)

  1. 客户端/系统将事件发布到实现Saga模式的API,并将链接传递到文件所在的位置(例如,上传到AWS S3存储桶)。
  2. Saga模式中的每个事件/步骤均根据其要求处理文件。
  3. 客户端/系统可以轮询更新,或者可以将原始POST设计为传递回调/通知服务端点。