Чӣ гуна мубодилаи маълумот байни микросервисҳо дар меъмории системаи барномасозӣ амалӣ мешавад?
sobes.tech AI
Ҷавоб аз AI
Муоширати байни микросервисҳо одатан тавассути ду роҳи асосӣ амалӣ карда мешавад:
-
Интераксияи синхронӣ — бо истифода аз REST API ё gRPC. Микросервисҳо HTTP-захираҳоро ба якдигар мефиристанд ва интизори ҷавоб мешаванд. Ин содда ва фаҳмо аст, аммо метавонад ба таъхирҳо ва мушкилоти муқовимат оварда расонад.
-
Интераксияи асинхронӣ — тавассути системаҳои мубодилаи паёмҳо (message brokers), мисли Kafka, RabbitMQ ё ActiveMQ. Микросервисҳо ҳодисаҳо ё паёмҳоро дар навбат мегузоранд, ва дигарон ба онҳо обуна мешаванд. Ин усул суръатнокӣ ва муқовиматро ба система меафзояд.
Масалан, дар Java бо истифода аз Spring Boot, намунаи зангзании REST синхронӣ:
@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("Тартиб сохта шуд");
} else {
return ResponseEntity.status(HttpStatus.PAYMENT_REQUIRED).body("Пардохт ноком шуд");
}
}
}
Ин ҷо, PaymentService метавонад муштарии дигар микросервис бошад.
Барои мубодилаи асинхронӣ, метавон аз Kafka Producer ва Consumer истифода кард, ки дар он як хизмат ҳодисаро нашр мекунад ва дигаре онро гӯш мекунад ва кор мекунад.