[英]How to use RabbitMQ as a Message Broker and Kafka as the Event Bus handler on the same Nest.js project?
我需要同時使用 RabbitMQ 和 Kafka。 RabbitMQ 將負責通過網關(一種微服務)將一個微服務的必要數據檢索到另一個微服務,因此它們不會進行點對點通信。 Kafka 將用於發布諸如“UserCreated”之類的事件,並且已經被訂閱和授權的微服務將根據事件進行操作。 令我困惑的部分在這里:
const app = await NestFactory.createMicroservice<MicroserviceOptions>(
AppModule,
{
transport: Transport.RMQ,
options: {
urls: ['amqp://localhost:5672'],
queue: 'api_gateway_queue',
queueOptions: {
durable: false,
},
},
}
);
@nestjs/microservices 需要有一個名為 transport 的屬性,它可以是 TCP、Kafka、RabbitMQ 等。所以我認為當我嘗試同時使用它們中的兩個時它可能會限制我。
你指的是一個混合應用程序。
創建多個微服務並將它們附加到app
,通過app.connectMicroservice
而不是使用工廠,然后將它們與app.startAllMicroservices()
一起啟動。
或者,您可以使用 Nest 外部的 Kafka Connect 將 RabbitMQ 事件直接提取到 Kafka 中,然后僅設置 Kafka 微服務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.