Лучший сервис Work Queue для распределенных кластеров - PullRequest
0 голосов
/ 27 мая 2010

Мне нужна простая система типа рабочей очереди для управления асинхронными задачами.

Я смотрел как на бобового стебля, так и на шестерёнку. Однако оба они, похоже, предполагают, что клиент и сервер очереди находятся в одной сети, и поэтому между ними всегда будет надежная сеть.

Мне нужен тот, который может поддерживать клиент и сервер, находящиеся в разных местах мира, и иметь возможность управлять временной потерей сетевого соединения между кластерами.

В идеале это будет работать таким образом, чтобы я отправлял задание на локальный прокси-сервер, который пытается отправить его на основной сервер очереди. Если нет сетевого подключения, он попытается позже, однако это не приведет к потере работы или задержке клиента.

Есть рекомендации?

1 Ответ

0 голосов
/ 02 июня 2010

Попробуйте ActiveMQ. Клиентские библиотеки (независимо от того, отправляются они или используются) достаточно умны, чтобы автоматически переподключаться при сбоях в сети, перезагрузках сервера и т. Д. Для меня это прекрасно работает в моей локальной сети и с несколькими компьютерами, подключенными через VPN. Я использую Apache NMS в качестве клиентской библиотеки для .NET и одного экземпляра ActiveMQ-брокера.

Он также поддерживает HTTP, однако я еще не пробовал, не знаю, является ли поддержка повторного подключения и т. Д. Такой же.

Существует также поддержка запуска более одного брокера (сервера) для кластеризации и балансировки нагрузки, которая называется «сеть брокеров». Брокеры могут даже сидеть за брандмауэром. Может быть вариант для вас, если у вас есть большое количество производителей / потребителей в более чем одном месте.

...