Сбой ZMQ при отправке больших кусков данных по локальной сети - PullRequest
1 голос
/ 28 марта 2011

ну в основном у меня одна ведущая система и 3 подчиненные системы. Я использовал фазу «запрос / ответ» для отправки контента на 3 из моих клиентских систем, поскольку это по сути решает мою проблему разделения данных. После отправки контента в 3 из моих клиентских систем я закрываю сокет, который отвечал за REQ / REP topolgy, и создал еще одну связку сокетов, которая соединяется с отдельными подчиненными системами для того, чтобы получать контент от всех трех систем. Я запустил весь код в localhost, у меня не было никаких проблем, и все прошло гладко, даже когда я пытался отправить наборы данных объемом 40 МБ из одной клиентской системы в главную систему.

Проблема в том, что я попытался реализовать это по локальной сети в моей лаборатории

  1. Фаза REQ / REP проходит гладко, поэтому в основном все клиентские системы выбирают наборы данных для работы.

  2. Индивидуальная PAIR с клиентом вроде не работает, когда я пытаюсь обработать большие наборы данных (например, 40 МБ, что я не считаю большим, так как я загрузил содержимое в словарь, а размер объекта словаря достиг 24 МБ) вроде задыхается и по какой-то причине не обрабатывает.

Я понятия не имею, почему в локальной сети он ведет себя иначе, чем в моей системе.

Системы, которые я использую в локальной сети - двухъядерные 64-битные AMD с 2 ГБ ОЗУ (все 4 системы)

Incase, если вы заинтересованы, чтобы запустить код:

Основной системный код: http://codepad.org/5uVCEb42

Salve1: http://codepad.org/LNmi9vu2

Slave2: http://codepad.org/0vmEAJYc (этот файл извлекает 40 МБ содержимого из файла и, наконец, передается в главную систему)

Slave3: http://codepad.org/d565lgiv

1 Ответ

2 голосов
/ 29 марта 2011

PAIR-сокеты не переподключаются автоматически, поэтому их не рекомендуется использовать в локальной сети.

...