Özet - Microservice
- Node.js kursu
- İleri seviye
- Ders 54/83
- 5 dk
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
// 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
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?
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 |