【问题标题】:Inter-application communication via the cloud?通过云进行应用程序间通信?
【发布时间】:2014-02-11 17:21:18
【问题描述】:

我有一个非常笼统的问题,正在寻找正确方向的一般要点。假设我想构建一个可以在多台计算机上运行的程序,但又希望每个程序可以相互协作,我该如何实现它们之间的通信层?

例如。 芝加哥 IL 的机器 A 正在运行

机器 B 正在德克萨斯州休斯顿运行

机器 C 正在加利福尼亚州圣地亚哥运行

他们都服务于一个职能,但作为一个团队一起工作以更快地完成它。

机器 A 已启动并准备好运行,但需要检查机器 B 和 C 是否已准备好。 一旦所有机器都打开并相互检查,它们就会启动。有某种类型的问题,他们都从中挑选工作并完成。在那里,他们必须知道不要做另一台计算机/线程已经在处理的工作。

在将它们作为一个团队配对时,我从来没有处理过计算机间的通信,所以我真的不知道从哪里开始。我正在考虑拥有一个云数据库,他们都可以在其中签入并密切关注哪台机器正在做什么,但这似乎很笨拙。我确信有更好的方法来做到这一点。

【问题讨论】:

    标签: architecture computer-science


    【解决方案1】:

    你想要两种不同的东西。您想要一个他们都定期检查的发布/订阅或主题 (http://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern)...如果有人没有每隔 x 分钟/秒检查一次,他们就会停止工作(假设您想要停止,我必须审查这个要求)。 您还需要一个简单的消息队列 (http://en.wikipedia.org/wiki/Message_queue) 来完成工作。

    我仍然会仔细检查您是否真的需要在它们开始工作之前让它们全部运行。我不会在地理上将它们分开。如果它们只是管道中的阶段,请创建几个队列,当它们用完工作时,它们会休眠。这是基于消息的架构的优势。将潜在的高滞后过程彼此分离。尝试将高度依赖的工作保持在同一地点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-19
      • 2017-04-09
      • 2012-06-19
      • 2017-09-10
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      相关资源
      最近更新 更多