В момент Moment мы проектируем и планируем преобразовать нашу систему в шаблон архитектуры микросервиса.Microservice Event с дизайном с несколькими экземплярами
Для ослабления сцепления мы думаем о конструкции, управляемой событиями, с тематикой JMS. Это выглядит великолепно. Но я не понимаю, как мы можем решить проблему с несколькими экземплярами микросервиса. Для отказоустойчивости и балансировки нагрузки у нас есть n экземпляров каждой услуги. Если событие опубликовано в теме, каждый экземпляр получит и обработает это событие.
С этим можно справиться с замками и обработанными состояниями в хранилище данных. Но это решение выглядит очень дорого, и каждый экземпляр имеет ту же самую работу. Это не балансировка нагрузки для меня.
Есть ли какое-нибудь хорошее решение или передовая практика для этого шаблона?
С очередью нам нужно по одному для каждого служебного сообщения. Это недостаточно развязано. У нас будет около 15 - 20 Microservice. У каждого сервиса есть 2 - 10 событий для публикации. И некоторые события обрабатываются несколькими службами. Таким образом, мы должны реализовать A send Event to B, A Send Event to C вместо A publish Event и B, C Прослушать событие. – Matthias
Большое спасибо. Я нашел VirtualDestinations для ActiveMQ и Fanout для RabbitMQ. Оба могут решить мою проблему и должны хорошо работать с моим вариантом использования. – Matthias