У меня несколько вопросов:
- Правильный ли это подход к разделению на микросервисы? Я хочу запускать их в одной программе в разных потоках или отдельно, используя разные исполняемые файлы, в зависимости от моих потребностей.
- Как правильно установить соединения сокетов в ZeroMQ, чтобы каждый модуль мог взаимодействовать с другим модулем через брокера? Они должны как получать, так и отправлять сообщения. Это две розетки PULL-PUB или DEALER-ROUTER?
- Я запущу один поток для брокера, который реализую с помощью ZeroMQ.
- Подключу 4 модуля к этому брокеру, научу их общаться друг с другом через него.
- Запускайте сокеты ZeroMQ для каждого модуля в отдельном потоке, чтобы при получении сообщений они асинхронно вызывали методы своего модуля с помощью boost::asio::post.

Подробнее здесь: https://stackoverflow.com/questions/787 ... roservices