2014-12-02 2 views
2

Мне нужен шаблон без посредников для чтения и записи сообщений между узлами без удаления сообщения из очередей до тех пор, пока какая-либо система мониторинга не примет удаление сообщения.zeromq создает буфер сообщений между узлами

Могу ли я сделать это с помощью zeromq ?, в zmq, если один узел издателя умирает, сообщение, стоящее в очереди в сети, тоже пропало? как я могу сохранить эту очередь в сети !!!

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

Может ли я реализовать эти функции с нынешними моделями в zmq? )

+0

Поскольку вы включили тег [tag: dds], вас интересуют решения, использующие DDS? Вы не упомянули об этом в своем вопросе. –

+0

@ReinierTorenbeek Я не знаю, я думаю, что использование MQ как zmq и реализация такого шаблона (который я описал выше) до сих пор не имеет архитектуры DDS. если я ошибаюсь в понимании dds, пожалуйста, поправьте меня? спасибо – danics

ответ

1

Вы должны построить такой уровень избыточности/надежности в приложение, а не полагаться на ZMQ, чтобы обеспечить его.

Это означает, что вам нужно будет отслеживать все ваши сообщения на узле издателя, а затем абонентский узел должен иметь возможность сообщить, что он получил сообщение, позволяя узлу издателя удалить его кэш. Это означает, что несколько сокетов, скорее всего, если вы действительно не захотите попробовать и получить XPUB/XSUB для общения таким образом, но, похоже, это не идеальный выбор.

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

+0

Я смотрю в opensplice, а некоторые, как кажется, предоставляют такую ​​функциональность, http://www.slideshare.net/Angelo.Corsaro/advanced-opensplice-programming-part-i – danics

+0

Не могу сказать, что я много знаю о opensplice, в несколько минут поиска это похоже на реализацию протокола DDS с открытым исходным кодом. Таким образом, это не напрямую сопоставимо с ZMQ ... подумайте о opensplice как о полном коммуникационном приложении, где ZMQ - это набор инструментов, который вы используете для создания полного коммуникационного приложения. Я не достаточно глубоко заглянул в спецификацию DDS, чтобы узнать, можете ли вы полностью реализовать ее с помощью ZMQ, но вы сможете ее аппроксимировать. Но вы, вероятно, просто захотите использовать opensplice вместо этого, если оно соответствует вашим потребностям. – Jason

+0

Я не хочу использовать opensplice в своем проекте, вы правы, я хочу создать свое собственное приложение для связи с использованием ZMQ и на основе DDS, вы видели ссылку, которую я отправляю за вас? после страницы 13?, вы думаете, что я могу реализовать глобальный домен данных, подобный этому, используя библиотеки zmq, такие как zyre opnamp и т. д. или нет. – danics