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:
-
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.
-
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.