Шина сообщений через ZeroMQ
Я собираюсь реализовать распределенную шину сообщения над ZeroMQ, и я стараюсь сделать ее максимально эффективной. Мои требования:
- несколько процессов связаны с шиной, некоторые из них находятся на одной машине, а некоторые нет.
- процессы могут подписаться на некоторые темы
- К сожалению, нет многоадресной рассылки (она не поддерживается в производственной среде - Amazon)
- Мне нужна многоязычная душа (по крайней мере, для С++, Haskell и Python).
Подходы, которые я рассматриваю, следующие:
1. Служба каталогов + топология сетки
- существует одна служба каталогов, в которой есть список всех подключенных процессов и их адресов.
- каждый процесс подключается к DS при запуске и запрашивает адреса других пользователей.
- каждый процесс имеет Паб и Sub сокеты, связанные со всеми другими процессами (топология сетки)
2. Брокер
- все процессы связаны с брокером, который распространяет сообщения с помощью Pub-сокета.
Существуют ли другие/более совершенные архитектуры для использования с ZeroMQ для создания такой шины сообщений?
Ответы
Ответ 1
Я предлагаю вам взглянуть на nanomsg, который имеет встроенную топологию шины и некоторые
другие интересные, такие как SURVEY. Это библиотека Мартина Сустрика, оригинальная zmq
автор.
Вы можете найти обсуждение BUS на блоге Мартина Сустрика: http://250bpm.com/blog:17