Sobes.tech
Junior — Middle

¿Cómo se realiza el intercambio de información entre microservicios en la arquitectura del sistema?

sobes.tech AI

Respuesta de la IA

La comunicación entre microservicios generalmente se realiza mediante dos enfoques principales:

  1. Interacción sincrónica — mediante REST API o gRPC. Los microservicios hacen solicitudes HTTP entre sí, esperando una respuesta. Es simple y comprensible, pero puede causar retrasos y problemas de resistencia.

  2. Interacción asincrónica — a través de sistemas de intercambio de mensajes (brokers de mensajes), como Kafka, RabbitMQ o ActiveMQ. Los microservicios publican eventos o mensajes en una cola, y otros se suscriben a ellos. Este enfoque aumenta la escalabilidad y la resistencia del sistema.

Ejemplo de llamada sincrónica REST en Java usando Spring Boot:

@RestController
public class OrderController {

    private final PaymentService paymentService;

    public OrderController(PaymentService paymentService) {
        this.paymentService = paymentService;
    }

    @PostMapping("/order")
    public ResponseEntity<String> createOrder(@RequestBody Order order) {
        boolean paymentResult = paymentService.processPayment(order.getPaymentInfo());
        if (paymentResult) {
            return ResponseEntity.ok("Order created");
        } else {
            return ResponseEntity.status(HttpStatus.PAYMENT_REQUIRED).body("Payment failed");
        }
    }
}

Aquí, PaymentService puede ser un cliente de otro microservicio.

Para el intercambio asincrónico, se puede usar Kafka Producer y Consumer, donde un servicio publica un evento y otro lo escucha y procesa.