2015-12-04 3 views
0

Я сравнительно новичок в ZeroMQ и хотел бы предложить некоторые предложения относительно его внутренней архитектуры.Что такое базовая архитектура дизайна ZeroMQ

Я планирую использовать ZeroMQ в качестве рамки обмена сообщениями для моей работы. Основная идея, которую я хочу достичь, - это возможность динамически масштабировать инфраструктуру, основанную на нагрузке и вычислительной мощности, необходимой для достижения конкретных сроков рабочего процесса.

Таким образом, если есть необходимость добавить больше узлов, то приложение создаст новые узлы, а система обмена сообщениями также сможет включить изменения. Я также должен быть в состоянии указать, где должны выполняться дополнительные вычисления или как динамическая динамика добавляет новые узлы (если они есть). Событие на конкретном узле решает последующие действия, которые должны выполняться на других узлах. Вот мой сценарий или мой стек, что я имею в виду, прочь, но хотел бы знать, если это имеет смысл:

  • Пользовательские приложения

  • ZeroMQ сообщений

  • Squid-Content маршрутизации на основе

  • Overlay

  • Физические основания

Я немного скептически отношусь к вышеуказанному стеку, поскольку, как я считаю, ZeroMQ помогает достичь большей части функциональности и тем самым упростить ее.

Несколько точек о моем стеке:

Физических подложки являются общим числом узлов, которые доступны для вычислений или в качестве источников данных.

Оверлей - это логическая сеть, динамически построенная по физической сети на основе ближайших узлов, доступных для конкретного рабочего процесса. то есть, если два узла обмениваются данными часто, то эти два узла расположены логически близко друг к другу. Является ли отдельный оверлей, например, CHORD и т. Д., Когда мы используем ZeroMQ?

Squid в основном используется для маршрутизации на основе контента. Требуется ли Squid, когда мы используем ZeroMQ?

Обмен сообщениями ZeroMQ предназначен для связи между различными узлами приложения.

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

Благодаря

ответ

0

Там так много специфичные для вашего потребительной случае здесь, что это почти невозможно дать какие-либо определенные ответы. ZeroMQ не является прямой заменой для концепций, которые вы встроили в свою архитектуру, однако она может соответствовать целям, которые вы пытаетесь выполнить, в зависимости от того, как вы их используете.

Мое предложение было бы отложить вашу нынешнюю архитектуру и начать пытаться создать новую с ZMQ в качестве ее ядра и увидеть, где вы сталкиваетесь с ограничениями, которые решаются другими частями вашего стека.

Что касается «внутреннего дизайна» от ZMQ, вот основы, которые вы должны понимать, в качестве отправной точки:

  1. ZMQ сокет обрабатывает детали соединения для вас, в том числе управления сетевыми икоты - но это имеет ограничения, которые вам нужно знать
  2. Существуют различные типы гнезд ZMQ, и у них есть мнения о том, как вы их используете. Некоторые из них сообщают асинхронно, некоторые из них строго синхронны, некоторые - в одном направлении, некоторые - двунаправленные.
  3. Если соединение между двумя разъемами отключено (например, один узел опускается, происходит сбой в сети - что-то большее, чем мгновенная икота), ваша работа должна признать это и восстановить это соединение.
  4. Нет построенный в брокерской или топологической, вы должны проектировать и строить все сами.

... в конечном счете, ZMQ предоставляет набор инструментов для вас, чтобы создать структуру обмена сообщениями, он делает не обеспечить полностью реализованы рамки обмена сообщениями из коробки. Таким образом, да, у него есть возможность заменить некоторые другие инструменты, которые вы используете в настоящее время, но вам придется его строить.

+0

Я до сих пор не получил ответы на начальные вопросы. Когда вы сообщите, что ZMQ имеет право заменить некоторые другие инструменты, на какие инструменты вы ссылаетесь? Можете ли вы просто разработать функции, которые может предоставить ZMQ, или инструменты, которые он устранит, принимая мой сценарий. – SRKV

+0

Вы не указали особенности использования кальмара, как ваши функции наложения и какие проблемы вы пытаетесь решить и как. Можно предположить, что вы используете эти вещи для решения определенных проблем, которые ZMQ предоставит вам более простой способ решить, но я не знаю, что вы не знаете в своем стеке. – Jason

Смежные вопросы