Microservices 如何在NestJs中使用CQRS模式编写微服务

Microservices 如何在NestJs中使用CQRS模式编写微服务,microservices,nestjs,Microservices,Nestjs,我已经按照以下步骤实现了CQRS模式。 我有这样一个命令: src/commands/place-order.command.ts 从'@nestjs/cqrs'导入{ICommand}; 导出类PlaceOrderCommand实现ICommand{ 构造函数(公共只读顺序:顺序){} } 和一个命令处理程序: src/command/place-order.handler.ts 从'@nestjs/cqrs'导入{ICommandHandler,CommandHandler,EventBu

我已经按照以下步骤实现了CQRS模式。 我有这样一个命令:

src/commands/place-order.command.ts
从'@nestjs/cqrs'导入{ICommand};
导出类PlaceOrderCommand实现ICommand{
构造函数(公共只读顺序:顺序){}
}
和一个命令处理程序:

src/command/place-order.handler.ts
从'@nestjs/cqrs'导入{ICommandHandler,CommandHandler,EventBus};
@CommandHandler(PlaceOrderCommand)
导出类PlaceOrderHandler实现ICommandHandler{
构造函数(私有eventbus:eventbus){}
异步执行(命令:PlaceOrderCommand):承诺{
//这里的业务逻辑。。。
//发布事件以通知案例已创建。
this.eventbus.publish(orderPlacedEvent);
}
}
现在的问题是,我的事件处理程序
OrderPlacedEventHandler
位于另一个微服务(invoice-microservice)中。如何确保eventHandler侦听此
OrderPlacedEvent

在发票微服务中:
从'@nestjs/cqrs'导入{IEventHandler,EventsHandler};
@EventsHandler(OrderPlacedEvent)
导出类OrderPlaceDevenHandler实现IEventHandler{
构造函数(私有commandbus:commandbus){}
句柄(事件:OrderPlacedEvent){
//业务逻辑在这里。。。
}
}