【问题标题】:Distributed computing on non-equal servers非对等服务器上的分布式计算
【发布时间】:2016-06-22 18:08:25
【问题描述】:

我有一组任务,每个任务都需要满足某些特定条件。例如,任务需要 100 Mb 的 RAM 才能执行。我也有多个放置工作人员的服务器。每个工作人员都有一些配置来描述它拥有多少资源。例如,一些工作人员可以使用 1 Gb 的 RAM 来执行任务。
是否有任何在工人之间分配任务的系统,以便每个工人满足传递给它的任务的要求?或者也许我可以通过消息代理(例如 RabbitMQ)以某种方式做到这一点?
我知道为此编写自己的应用程序,因为我不想重新发明轮子。
工人是用 Go 编写的。

【问题讨论】:

    标签: go rabbitmq distributed-computing task-queue messagebroker


    【解决方案1】:

    RabbitMQ 并没有明确地知道它的客户端的这些事情。它知道有多少客户端,队列有多少订阅者等。

    但是,您可以根据需要以分配任务的方式设置交换。但是,在发布任务之前,您必须知道它应该转到哪个(类型)订阅者。

    【讨论】:

    • 但是如果某个工人摔倒了会导致任务丢失
    • @NikitaLapkov 如果您在工作实际完成之前不确认,则不会。
    • 我的意思是如果服务器“mike”会倒下并且我发送标记为服务器“mike”的任务,没有人会接受它
    • 是的,您必须拥有多个实例。 RabbitMQ 会一直保留消息,直到有人接受(如果你这样配置的话)。
    • 并且消息将通过所有工人传播,甚至可能多次访问其中一些工人。这个方案我也想过,但时间是不是太长了?
    猜你喜欢
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    • 2011-05-27
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-07
    相关资源
    最近更新 更多