У меня два rabbitmq nest js микросервисов. Обе службы прослушивают одну и ту же очередь
Поток сообщений:
MyQueue(pattern: events) -> ServiceA -> MyQueue(pattern: logs) -> ServiceB
Поток сообщений работает нормально, но я получаю следующий журнал ошибок, когда ServiceA отправляет сообщение в ServiceB
[Server] There is no matching event handler defined in the remote service.
Теперь вопрос в том, предполагается ли в Nest JS, что служба должна прослушивать все шаблоны входящих сообщений? Если нет, то как исправить эту ошибку?
Код:
/*
* ServiceA
*/
import {EventPattern} from '@nestjs/microservices';
export class EventsController {
private client: ClientProxy;
constructor() {
this.client = ClientProxyFactory.create(getRabbitMQClientOptions());
}
@EventPattern('events')
handleEvents(data) {
this.client.emit('logs', data);
// process
}
}
/*
* ServiceB
*/
import {EventPattern} from '@nestjs/microservices';
export class LogsController {
@EventPattern('logs')
handleLogs(data) {
// handle logs
}
}
Возможное решение:
Использовать разные очереди. Но тогда мне нужно изменить много кода
Примечание. Вложенный JS код, который регистрирует ошибку, если не находит соответствующий обработчик. Ссылка на код Github