通过云进行应用程序间通信?

时间:2014-02-11 17:21:18

标签: architecture computer-science

我有一个非常普遍的问题,我正在寻找正确方向的一般观点。如果我想构建一个可以在多台计算机上运行但希望每个程序与另一台程序一起工作的程序,我怎么能实现它们之间的通信层呢?

实施例。 伊利诺伊州的机器A正在运行

机器B正在Houston TX运行

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

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

机器A打开并准备就绪,但需要检查机器B和C是否准备就绪。 一旦所有机器都打开并相互检查,它们就会启动。有一种类型的阙他们都挑选出来并完成工作。因为他们必须知道不要做其他计算机/线程已经在工作的工作。

当谈到将他们配对成团队时,我从未处理过计算机间通信,所以我真的不知道从哪里开始。我正在考虑建立一个云数据库,他们可以在这里检查并密切关注哪台机器正在做什么,但这看起来非常笨重。我确信有更好的方法可以做到。

1 个答案:

答案 0 :(得分:0)

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

我还会仔细检查你是否真的需要让它们在开始工作之前全部运行。我不会在地理上将它们分开。如果它们只是管道中的阶段,那么就排好几个队列,当它们用完工作时就会睡觉。这是基于消息的体系结构的优点。将潜在的高滞后进程相互解耦。尝试并保持高度依赖的工作位于同一地点。