# Mikroservisler

Adres: https://softwaredictionary.org/tr/terimler/microservices
Kategori: Yazılım Mimarisi
Son güncelleme: 2026-09-29
İngilizcesi: Microservices
Türkçe karşılığı: mikro hizmetler
Okunuşu: maykrosörvisiz

Kısaca: Mikroservisler, bir uygulamanın ağ üzerinden iletişim kuran, küçük ve bağımsız olarak dağıtılabilen servislere bölündüğü bir mimari tarzdır.

## Mikroservisler nelerdir?

Mikroservis mimarisinde her servis kullanıcı hesapları, ödemeler ya da arama gibi tek bir iş yeteneğine sahiptir ve kendi süreci olarak çalışır. Servisler birbirleriyle genellikle HTTP üzerinden ya da mesaj kuyrukları aracılığıyla API'ler yoluyla konuşur ve her biri tipik olarak kendi verisini yönetir. Bağımsız oldukları için ekipler her servisi ayrı ayrı geliştirebilir, dağıtabilir ve ölçekleyebilir.

Mikroservisler genellikle container'lara paketlenir ve Kubernetes gibi bir orkestrasyon platformunda çalışır; CI/CD hatları her servisi kendi takviminde dağıtır. Arama özelliği yoğun trafik alırsa yalnızca arama servisinin daha fazla örneğe ihtiyacı olur. Bir servis çökerse iyi tasarlanmış bir sistem uygulamanın geri kalanını çalışır durumda tutabilir.

Bu esnekliğin bir bedeli vardır. Ağ çağrıları, süreç içi fonksiyon çağrılarından daha yavaş ve daha az güvenilirdir; veri birçok veritabanına dağılır ve on servisten geçen bir isteğin hatasını ayıklamak iyi bir günlükleme, izleme ve iz sürme gerektirir. Servisler arasında veri tutarlılığını sağlamak da tek bir veritabanı işleminden daha zordur.

Mikroservisler, her şeyin tek uygulama olarak dağıtıldığı monolitin karşıtıdır. Esas olarak birçok ekibin tek büyük sistem üzerinde çalışması sorununu çözerler; bu yüzden birçok uzman, iyi yapılandırılmış bir monolitle başlamayı ve servisleri yalnızca açık bir ihtiyaç olduğunda ayırmayı önerir.

## Önemli noktalar

- Her mikroservis tek bir iş yeteneğini yönetir ve bağımsız olarak dağıtılır.
- Servisler ağ üzerinden API'ler ya da mesajlarla iletişim kurar.
- Her servis genellikle kendi verisine sahiptir.
- Faydaları bağımsız ölçekleme ve dağıtımdır; bedeli operasyonel karmaşıklıktır.
- Mikroservisler, birden çok ekibin geliştirdiği büyük sistemlere uygundur.

## Örnek: Bir mikroservisin HTTP üzerinden başka birini çağırması

```typescript
// Order service: asks the separate inventory service for stock levels
async function placeOrder(productId: string, quantity: number) {
  const res = await fetch(`http://inventory-service/stock/${productId}`);
  const { available } = await res.json();

  if (available < quantity) {
    throw new Error("Not enough stock");
  }

  // Each service owns its data, so orders go into the order service's database
  await ordersDb.insert({ productId, quantity });
}
```

## Sık sorulan sorular

**Mikroservisler ile monolit arasındaki fark nedir?**

Monolit tek parça olarak dağıtılan tek bir uygulamadır; mikroservisler ise sistemi bağımsız dağıtılan birçok küçük servise böler. Mikroservisler bağımsız ölçeklemeye ve ekip özerkliğine olanak tanır ama ağ, veri ve operasyon karmaşıklığı ekler.

**Mikroservisler ne zaman kullanılmalı?**

Mikroservisler en çok, sistemin parçalarını bağımsız olarak dağıtması ve ölçeklemesi gereken birkaç ekibin geliştirdiği büyük uygulamalarda anlamlıdır. Küçük ekipler ve yeni ürünler için monolit genellikle daha hızlı ve basittir.

**Mikroservisler birbiriyle nasıl iletişim kurar?**

REST, GraphQL ya da diğer RPC tarzı API'ler üzerinden eşzamanlı olarak, ya da bir mesaj aracısı (message broker) aracılığıyla olay ve mesaj yayınlayarak eşzamansız olarak iletişim kurarlar. Eşzamansız mesajlaşma, servisler arasındaki doğrudan bağımlılıkları azaltır.

## Kaynaklar

- [James Lewis and Martin Fowler: Microservices](https://martinfowler.com/articles/microservices.html)

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
