go - 非对等服务器上的分布式计算

标签 go rabbitmq distributed-computing task-queue messagebroker

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

最佳答案

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

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

关于go - 非对等服务器上的分布式计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37963248/

相关文章:

rpc - LRPC 的意义何在?为什么有人要对同一台机器进行远程过程调用?

hadoop - 如何在Map Reduce范式中进行减法

plugins - 为什么 IntelliJ IDEA 无法在 Go 项目中导入本地包?

go - 为什么我找不到任何遵循标准 src/pkg/bin 结构的 go 包?

go - Fileserver() 总是返回 index.html

rabbitmq - RabbitMQ RPC 是一种带有响应的 "Work queue"吗?

python - pika, rabbitmq - 从队列中获取所有消息而不使用它们

sql - 转到h2数据库

docker - 从docker容器访问本地机器上运行的rabbitmq

java - 我可以在 Apache Ignite 计算中混合使用 C++ 和 Java 吗?