Pachetul @nestjs/microservices oferă o abstracție completă peste protocoalele distribuite de comunicare. Prin modulul ClientsModule, aplicația configurează clienți injectabili de tip ClientProxy.
Acesta suportă două modele principale:
- Request-Response (RPC):
client.send('pattern', data)– trimite un mesaj și returnează unObservablecu răspunsul așteptat de la microserviciul destinație. - Event-driven:
client.emit('event_name', data)– transmite un eveniment asincron fără a aștepta un răspuns (fire-and-forget).
Exemplu: Trimitere mesaj către RabbitMQ prin ClientProxy
import { Injectable, Inject } from '@nestjs/common';
import { ClientProxy } from '@nestjs/microservices';
import { firstValueFrom } from 'rxjs';
@Injectable()
export class BillingClientService {
constructor(
@Inject('BILLING_SERVICE') private readonly client: ClientProxy,
) {}
async createInvoice(orderId: number) {
// Apel RPC către microserviciul de facturare:
return firstValueFrom(
this.client.send({ cmd: 'generate_invoice' }, { orderId }),
);
}
}
Întrebări & Exemple de Cod:
ClientsModule și ClientProxy în Microservicii NestJSAi o nelămurire despre utilizarea comenzii
ClientsModule și ClientProxy în Microservicii NestJSsau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.