Sobes.tech
Junior — Middle

Como é realizado o intercâmbio de informações entre microserviços na arquitetura do sistema?

sobes.tech IA

Resposta da IA

A comunicação entre microserviços geralmente é implementada através de duas abordagens principais:

  1. Interação síncrona — usando REST API ou gRPC. Os microserviços fazem pedidos HTTP uns aos outros, aguardando uma resposta. É simples e compreensível, mas pode levar a atrasos e problemas de resiliência.

  2. Interação assíncrona — através de sistemas de troca de mensagens (brokers de mensagens), como Kafka, RabbitMQ ou ActiveMQ. Os microserviços publicam eventos ou mensagens numa fila, e outros subscrevem-se a eles. Esta abordagem aumenta a escalabilidade e a resistência do sistema.

Exemplo de chamada REST síncrona em 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");
        }
    }
}

Aqui, PaymentService pode ser um cliente de outro microserviço.

Para troca assíncrona, pode-se usar Kafka Producer e Consumer, onde um serviço publica um evento e outro o escuta e processa.