2010-09-21 4 views
0

В распределенной системе со следующим потоком данных:ZeroMQ на основе распределенной системы

  1. Клиент посылает сообщение для случайного узла в распределенной системе.
  2. Узел проверяет, может ли операция быть выполнена им. Если нет, отправляет сообщение другому узлу. И этот процесс следует за правильным узлом.

Таким образом, система имеет следующий поток:

клиент -> nodeX -> nodeY -> nodeZ

Если я хочу, чтобы отправить OK сигнал клиента (от nodeX), будет обрабатывать блок с помощью ZeroMQ?

Спасибо!

ответ

1

Обычно zmq_send не блокируется, но есть случаи, когда он может блокировать См. Обзор here, это зависит от типа гнезда, который вы используете.

Сообщения будут помещены в очередь, если узел, который вы отправляете, не может быть достигнут/медленная/медленная передача или передача сообщений и т. Д. Вы можете установить порог относительно того, что происходит, когда очередь сообщений (сообщения еще не доставлены) достигает определенного размера, этот порог называется ZMQ_HW.

Если zmq_send() блокирует или отбрасывает сообщения, когда сообщения ZMQ_HW поставлены в очередь, вы можете увидеть в документации zmq_socket, упомянутой выше.