CodeBlanks Logo Icon CodeBlanks

Özet - Microservice

HTTP iletişim, gateway ve circuit breaker'ı birleştirerek bir servis ağ yazarsın.

Özet - Microservice

Bu grupta microservice mimarisinin temel desenlerini öğrendin: servislerin birbirleriyle HTTP üzerinden haberleşmesi, API gateway ile tek giriş noktası, service discovery ile dinamik adres bulma ve circuit breaker ile hatalı servis izolasyonu.

Şimdi bunları birleştirip küçük bir gateway + breaker iskeleti kuracaksın. İskelet bir API gateway gibi /api/users yolunu karşılayacak ve bir CircuitBreaker örneği tutacak. Bu mini görev, microservice desenlerinin nasıl birleştiğini gösterir.

Gateway + breaker tasarımı

İskelet iki parçadan oluşur: app.use("/api/users", ...) ile gateway routing ve new CircuitBreaker() ile bir breaker örneği. Gateway her istekte breaker'ın durumunu kontrol edebilir.

Akış: const breaker = new CircuitBreaker(); app.use("/api/users", (req, res) => { if (breaker.state === "open") return res.status(503).json({ hata: "Servis kapalı" }); res.json({ kaynak: "user-service" }); });. Bu, gateway'in çağrı yapmadan önce breaker'ı kontrol etmesini sağlar. Eğer breaker açıksa istek hemen reddedilir; çağrı yapılmaz. Bu desen, gerçek üretim sistemlerinde yaygındır. Üzerine logging, retry ve metric eklenebilir.

Uygulama Gateway + breaker iskeletini kur

express içe aktar, app oluştur. const breaker = { state: "closed", failures: 0 } ile basit bir breaker örneği oluştur. app.use("/api/users", (req, res) => res.json({ kaynak: "user-service" })) tanımla. console.log ile "Sistem hazır" yaz.

Başlangıç kodu

index.js
// express içe aktar, app oluştur ve breaker tanımla
// buraya yaz

// "/api/users" gateway rotasını tanımla
// buraya yaz

// "Sistem hazır" yazdır
// buraya yaz

Örnek çözüm

index.js
const express = require("express");
const app = express();
const breaker = { state: "closed", failures: 0 };
app.use("/api/users", (req, res) => res.json({ kaynak: "user-service" }));
console.log("Sistem hazır");

Beklenen çıktı

Sistem hazır

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Gateway + breaker iskeleti neyi birleştirir?

index.js
app.use("/api/users", ...) + new CircuitBreaker()
  • Yalnızca require
  • API gateway ve circuit breaker Doğru cevap
  • Yalnızca console.log
  • Yalnızca registry

Açıklama: Gateway + breaker birleşir.

2 Aracı rolüne eşle

Kavram Anlamı
app.use Gateway routing tanımlar
CircuitBreaker Hatalı servisi izole eder
Map Registry için kullanılır
fetch Servis çağrısı atar

İleri seviye bölümündeki tüm dersler