NATS - только один подписчик для принятия мер в отношении опубликованного события в микросервисной архитектуре - PullRequest
0 голосов
/ 05 мая 2018

Я новичок в NATS и прочитал все примеры для: https://nats.io/documentation/concepts/nats-messaging/

Я нахожусь в микросервисной архитектуре, где в microservice-Y (MSY) необходимо хранить некоторую информацию, опубликованную из других microservice-X (MSX). У меня есть 2-10 экземпляров MSY, поэтому при внесении изменений в MSX и публикация экземпляра MSX Я хочу, чтобы только один экземпляр MSY сохранял информацию, поэтому не все они сохраняют одни и те же данные. Я прочитал Request-Repy: https://nats.io/documentation/concepts/nats-req-rep/ но кажется, что все экземпляры получают сообщение (и будут обрабатывать его), даже если оно является двухточечным, а ответ обрабатывается только для одного экземпляра, который быстрее всего отвечает

Это правильно или я неправильно понял пример? Если мне нужен только один экземпляр MSY, который должен обработать данное сообщение (сохранить данные в БД), что я могу сделать, чтобы добиться этого?

1 Ответ

0 голосов
/ 28 сентября 2018

Использовать группы очередей. Если у вас есть несколько подписок на одну и ту же тему с одной и той же группой очередей, только один из членов группы получит сообщение. Проверьте это: https://nats.io/documentation/concepts/nats-queueing/

...