Ako sa realizuje výmena informácií medzi mikroslužbami v architektúre systému?
sobes.tech AI
Odpoveď od AI
Výmenník informácií medzi mikroslužbami sa zvyčajne realizuje dvoma hlavnými prístupmi:
-
Synchronná interakcia — pomocou REST API alebo gRPC. Mikroslužby posielajú HTTP požiadavky navzájom a čakajú na odpoveď. Je to jednoduché a zrozumiteľné, ale môže viesť k oneskoreniam a problémom s odolnosťou.
-
Asynchrónna interakcia — cez systémy výmeny správ (message brokery), ako Kafka, RabbitMQ alebo ActiveMQ. Mikroslužby publikujú udalosti alebo správy do fronty, a iné sa na ne prihlásia. Tento prístup zvyšuje škálovateľnosť a odolnosť systému.
Príklad synchronického volania REST v Jave s použitím 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("Objednávka vytvorená");
} else {
return ResponseEntity.status(HttpStatus.PAYMENT_REQUIRED).body("Platba zlyhala");
}
}
}
Tu PaymentService môže byť klientom iného mikroslužby.
Pre asynchrónnu výmenu sa dá použiť Kafka Producer a Consumer, kde jedna služba publikuje udalosť a druhá ju počúva a spracováva.