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

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

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

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

1 ответ

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

Другие вопросы по тегам