Node.js
Ö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.
Örnek çözümü göster
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");
Kendini test et
-
Gateway + breaker iskeleti neyi birleştirir?
app.use("/api/users", ...) + new CircuitBreaker()
- Yalnızca require
- API gateway ve circuit breaker
- Yalnızca console.log
- Yalnızca registry
Cevabı göster
API gateway ve circuit breaker — Gateway + breaker birleşir.
-
Aracı rolüne eşle
- app.use
- Gateway routing tanımlar
- CircuitBreaker
- Hatalı servisi izole eder
- Map
- Registry için kullanılır
- fetch
- Servis çağrısı atar
Sıradaki ders: Message queue nedir?