如果这个问题对更多以IT为导向的人来说似乎是最基本的问题,那么我先道歉。我不确定它是否属于ServerFault域,但是如果我错了,请纠正我.
这个问题涉及托管在云环境(Google)中的web应用程序的一些后端操作。我试图评估各种虚拟机的协调方案。我将描述我们目前的情况,那些“知情人”可能会提出一个更好的方法(我希望!)
在我们的应用程序中,可以运行许多不同的分析,每个分析都有不同的硬件要求。它们通常非常大,我们不希望它们在应用服务器上运行(下面称为app_server )。
为此,当我们开始这些分析之一时,app_server将启动一个新的VM (称为VM1)。对于其中的一些分析,我们只需要VM1;它执行分析,并将HTTP请求发送回app_server,让它知道工作已经完成。
对于其他分析,VM1将依次启动许多工作机器(worker-1、.、worker-N),它们并行运行非常类似的任务。一旦完成了单个工作人员(例如worker-K)的任务,它就应该返回给VM1:“嘿,这是worker-K和I!”一旦所有工作人员(worker-1、.、worker-N)都完成了,VM1就会执行一些合并操作,并最终与app_server进行通信。
我的问题是:除了在VM1上启动一个web服务器来侦听工作人员的帖子请求(worker-1,.)之外,还有哪些潜在的机制可以让这些员工与VM1通信呢?是否有非webserver方式侦听HTTP请求并处理请求?
我应该注意到,我的所有VM都在GCE上的同一区域/区域内运行,因此它们能够通过内部IP进行通信,而不需要任何特殊的防火墙规则等(例如运行$ ping <other VM's IP addr>工作)。显然,我不希望这些VM (VM1、worker-1、.、worker-N)暴露在互联网上。
谢谢!
发布于 2018-06-07 17:38:26
听起来就像云Pub/Sub的正确用例。https://cloud.google.com/pubsub
在您的示例中,工作人员将将事件发布到队列中,而VM1将订阅它们。
很难从您的高层概述中判断它是否匹配,但是看看Composer也是https://cloud.google.com/composer/。
https://stackoverflow.com/questions/50745989
复制相似问题