分裂器聚合器模式与微服务

时间:2017-02-12 16:44:17

标签: spring-boot apache-camel spring-integration microservices

我需要创建一个执行以下操作的系统:

  1. 通过http multipart请求接收上传的文件 - 成功后返回200 ok
  2. 将上传的文件传递给多个外部服务
  3. 等待外部服务的所有结果,并计算最终响应
  4. 将响应作为发布者
  5. 返回给activemq

    有一些限制:

    1. 这些外部服务是第三方公司的服务,因此其中一些可能使用不同的api /协议。

    2. 我希望能够插入&在运行时拔掉第三方供应商。

    3. 能够支持从同一供应商扩展多个实例以提高性能
    4. 到目前为止,我的思考过程给我带来了:

      1. 使用spring-integration或apache camel作为分割器 - 聚合器模式模块
      2. 每个第三方供应商将是一个独立的春季启动应用程序
      3. 应用程序的入口点将是另一个spring boot应用程序
      4. 我有一些未解决的问题

        1. 我仍然不知道在不同服务之间传递文件的最佳方法是什么?通过消息队列?只是将请求代理到多个微服务?

        2. 如何支持插件&在运行时拔掉插头?

        3. 任何指针或帮助都会非常有用!

1 个答案:

答案 0 :(得分:0)

它看起来像Scatter-Gather

您有一个PublishSubscribeChannel,可以在运行时为其添加和删除订阅者。

关于plug & unplug问题,您可以查看Spring Integration Java DSL 1.2中的最新IntegrationContext功能。