如何实现分布式处理[关闭](How to implement distributed process

2019-10-19 04:39发布

我请求进来为不同的样品(S1,S2,..)需要以线性方式被处理(即,只有一个说在时刻S1-请求可以被处理)。 我有工作人员服务,可以处理请求给予N个。 我如何能实现RPC队列模式,使得样品消耗一个在时间和仍然允许不同样本之间计算的分配?

我想与兔MQ来实现这一点,因为它的简单性,集群功能,但我愿意考虑其他的解决方案,以及。

这里是一个图片来说明这个问题(有两个工人)

                               worker 1 
                            +-----------+
                            |           |
 input queue          +---->|           |-------+
+--------------+      |     |           |       |
|              |      |     +-----------+       |
| s1,s2,s1,s1  |------+                         |
|              |      |        worker 2         |
+--------------+      |     +-----------+       |
                      |     |           |       |
 output queue         +---->|           |-------+
+--------------+            |           |       |
|              |            +-----------+       |
|(s1,s2,s1,s1) |<-+                             |
|              |  +-----------------------------+
+--------------+

Answer 1:

一个简单的任务队列处理,假设任务仍然非居间:

一个ZeroMQ有这一点,多一点复杂的设置智能讨论>>>

检查分割和征服的正式行为模型建立

图-S:礼貌ZeroMQ / imatix)

在http://zguide.zeromq.org/page:all#Divide-and-Conquer

(只是为了一个灵感,还要检查与SIG_KILL扩展的方式附加


注:我没有(而O)ZeroMQ隶属关系,与imatix相同。 然而 ,很多项目,即聪明地工作也是后因这个神话般的ZeroMQ抽象和架构,恕我直言,我敢打赌,我可以说,这是一匹马力可能只从高性能,扩展能力,低受益-latency,分布式系统。



Answer 2:

嘿,你检查出https://storm.incubator.apache.org其用Python编写的,我相信。

Iron.io可以承载您的队列和分布式工人模式我们在任何语言平台上执行。 铁工也通过任务队列,使生活很容易让你的支持。

酒店今晚所使用的术语ETL extact,翻译,载荷传递和转换数据通过管道。

http://engineering.hoteltonight.com/ruby-etl-with-ironworker-and-redshift

(我的工作Iron.io只是想放一些资源在那里)



文章来源: How to implement distributed processing [closed]