Golang巡演分布式

时间:2014-05-14 20:03:37

标签: go distributed-computing

根据this article,app-engine前端和游乐场后端通过RPC调用进行通信。可以创建app-engine前端实例和playground实例中的每一个以支持扩展。

Playground Infrastructure Overview

我在问自己,在保持RPC的同时,在前端请求和后端实例之间进行负载均衡的模式(解决方案)是什么样的。

一种解决方案可能是使用一个全局工作队列,其中任务放入其中,并使用“回复”#39;头。此标头应指向放置响应的每个前端实例队列。类似于以下模式(来自RabbitMQ tutorial),后端实例之间共享rpc_queue: RabbitMQ RPC format

我不确定这是一个很好的方法,尤其是如果共享队列处于脱机状态,整个系统都会失败(但是如何解决这个问题?)。

谢谢。

1 个答案:

答案 0 :(得分:1)

作为我在第一篇文章中收到的评论的回答和后续跟踪,我开发了Indenter,这是一个基于提出的服务发现守护程序的概念的小概念证明(为了简单起见,我使用etcd而不是ZooKeepr)

我写了一篇关于它的文章,并且如果有人可能有兴趣发布代码:

Indenter: a scalable, fault-tolerant, distributed web service copying the go playground architecture.