如何在Mesos中的两个微服务之间共享大文件?

时间:2016-12-04 16:06:35

标签: microservices mesos

我有一个mesos集群,我需要运行两种类型的微服务,一种是生成非常大的文件(文件可能超过2GB),另一种是分析这些文件。分析微服务比生产者服务花费更多时间。 分析服务完成后 - 可以删除该文件。

我想到了两个选择:

  1. NFS - 生产者服务在NFS上创建所有文件,分析服务直接从共享文件夹中获取。 (我担心这种方法会消耗我的集群中的所有内部带宽)
  2. 本地磁盘(我的首选) - 在这种情况下,我需要以某种方式强制分析micoroservice在与创建此特定文件的生产者服务相同的Mesos slave上运行。 (我不确定这种方法是否可行)
  3. 在这种情况下最佳做法是什么?

1 个答案:

答案 0 :(得分:1)

我想这可以通过不同的方式实现,具体取决于您的要求:

  • 如果您希望能够处理主机(代理)故障,我认为除了使用NFS等共享文件系统之外别无他法。否则,如果您使用Marathon来安排您的微服务,则该任务将在另一个代理(数据不在本地可用)上重新启动。此外,您需要确保每个代理程序上都有相同的装入点,并将这些装入点用作容器中的主机卷。不幸的是,协同定位任务的POD功能可用性开始在Mesos 1.1.0和Marathon 1.4(尚未最终发布)中提供,作为旁注...

  • 如果您不关心主机(代理)故障,那么如果您在Marathon中使用hostname constraints,则可以在同一代理上共同定位两个微服务,并安装主机卷,然后可以跨服务共享。我想你需要一些业务流程才能在生产服务完成后才启动分析服务。