0

在文档(http://atlassian.gridgain.com/wiki/display/GG60/Distributed+Queues)中,提到缓存队列上的作业可以被工作网格使用,提供了一种替代的负载平衡方式。

我因此研究了这个概念:

  1. 实现了一个生产者,它将 GridRunnable 作业排入分区缓存(分布式阻塞队列)。我不得不使用分区队列(因为根据定义,本地队列不适合多网格访问)。
  2. 实现了一个消费者,它在启动时产生 n 个监听线程,这些线程永远阻塞队列中的作业,从队列中消费(take() 操作)作业并将它们提交给 Grid,然后阻塞下一个 take() 操作。

问题:

  1. 是(2)实现监听器的正确方法(另一种可能涉及提交监听器作业而不是消费者内的监听器线程)
  2. 虽然这种架构提供了动态负载平衡,但它似乎没有提供常规网格增益模型提供的许多好处,例如故障转移、亲和配置(缓存是分布式的 - 因此必须将数据移动到计算中)

我的观察正确吗?谢谢

4

1 回答 1

2

看起来您走在正确的道路上,也就是说,如果您需要使用基于 GridGain 分布式队列的负载均衡。

但是,看起来您最好使用标准 GridCompute API 将 GridRunnable 作业发送到网格。GridGain 将在后台自动对这些作业进行负载平衡。

于 2014-05-02T01:34:07.480 回答