Размер? Нет, ограничение, связанное с транспортной философией, имеет значение.
В оркестровке транспорта ZeroMQ есть более важная проблема, чем выбор политики SER/DES для внешнего сериализатора данных.
Никто не может запретить вам пытаться отправлять как можно большие BLOB
, хотя строка, оформленная в JSON, уже показала вам темную сторону таких подходов, есть и другие причины не идти по этому пути. .
ZeroMQ, вне всякого сомнения, отличный и мощный набор инструментов. Тем не менее, требуется некоторое время, чтобы получить представление, необходимое для действительно умного и высокопроизводительного развертывания кода, которое максимально использует эту мощную рабочую лошадку.
Одним из побочных эффектов многофункциональной внутренней экосистемы «под капотом» является малоизвестная политика, скрытая в концепции доставки сообщений.
Можно отправить любое сообщение разумного размера, при этом доставка не гарантируется. Оно либо полностью доставлено, либо вообще ничего не выходит, как сказано выше, ничего не гарантируется.
Ой?!
Да, не гарантируется.
Основываясь на этой базовой философии Zero-Guarantee, нужно тщательно выбирать шаги и меры, особенно если вы планируете перемещать «Gigabyte BEAST» туда и обратно.
Именно в этом смысле может быть количественно подтверждено реальным тестированием SUT
, что сообщения небольшого размера могут передаваться (если вам действительно все еще нужно перемещать GB
-s ( ref. комментировать выше, под OP) и не иметь другого выбора) весь объем данных сегментирован на более мелкие части с подверженными ошибкам мерами повторной сборки, что приводит к гораздо более быстрому и гораздо более безопасному завершению окончательное решение, чем пытаться использовать тупую силу и указывать коду сбрасывать около GB
данных на любые доступные ресурсы (принцип Zero-Copy ZeroMQ не может и не будет сам по себе спасти вас в этих усилиях).
Для получения подробной информации о другой скрытой ловушке, связанной с неполной реализацией Zero-Copy, прочитайте Мартина САСТРИКА, соучредителя ZeroMQ, замечает о Zero-Copy "до границы ядра" (так что, как минимум удвоить ожидаемое выделение пространства памяти...).< /а>
Лучший следующий шаг?
Хотя это и не решит вашу проблему с помощью нескольких SLOC
-ов, лучше всего, если вы серьезно намерены вложить свои интеллектуальные силы в распределенную обработку, прочитать прекрасную книгу Питера ХИНТЬЕНА "Code Connected, Том 1"
Да, требуется некоторое время, чтобы сформировать собственное понимание, но это поднимет вас во многих аспектах на другой уровень профессионального проектирования кода. Стоит потратить время. Стоит усилий.
person
user3666197
schedule
29.03.2016