İçeriğe geç
parazade

Dağıtık Sistem Nedir?

İngilizce: Distributed System

Yayın: · Son güncelleme:

Dağıtık Sistem Nedir? Kısaca

Dağıtık sistem, ağ üzerinden birbirine bağlı birden fazla bilgisayarın ortak bir görevi yerine getirmek için birlikte çalıştığı ve kullanıcıya tek bir sistem gibi göründüğü yapıdır. Büyük web servisleri, bulut platformları ve blokzincirler bu modelle çalışır.

Dağıtık Sistem nedir?
İçindekiler
  1. Dağıtık sistem nedir?
  2. Neden kullanılır?
  3. Zorlukları nelerdir?

Dağıtık sistem nedir?

Dağıtık sistem, işin tek bir makine yerine birçok makineye paylaştırıldığı yapıdır. Her makineye düğüm (node) denir. Düğümler ağ üzerinden mesajlaşarak koordineli çalışır. Kullanıcı ise arka planda kaç sunucu olduğunu fark etmez.

Bir arama motoruna yazdığınız sorgu, saniyeden kısa sürede yüzlerce sunucuda paralel işlenebilir. Bulut depolama servisleri dosyanızın kopyalarını farklı veri merkezlerinde tutar. İkisi de dağıtık sistem örneğidir.

Neden kullanılır?

Ana nedenler ölçek ve dayanıklılıktır. Tek bir sunucunun işlemci ve bellek kapasitesi sınırlıdır; yük arttığında yeni makineler ekleyerek büyümek, giderek daha pahalı tek bir makine almaktan çoğu zaman daha esnektir. Bir düğüm arızalandığında diğerleri işi devralabildiği için sistem ayakta kalır.

Coğrafi yakınlık da önemlidir. Türkiye'deki bir kullanıcıya Avrupa'daki, Asya'daki kullanıcıya Asya'daki sunucudan cevap vermek gecikmeyi azaltır.

Zorlukları nelerdir?

Dağıtık sistemler, tek makinede olmayan sorunlar getirir. Ağ bağlantısı kopabilir, mesajlar gecikebilir ya da sırası karışabilir. Varsayımsal bir örnek: iki sunucu aynı anda son ürünü sattığını sanırsa stok eksiye düşer. Bu tür tutarlılık sorunlarını çözmek için uzlaşma algoritmaları ve dağıtık kilitler kullanılır.

Hata ayıklama da zorlaşır, çünkü bir isteğin izi birden fazla makineye yayılır. Bu yüzden merkezi loglama ve izleme araçları zorunlu hâle gelir. Küçük bir proje için tek sunuculu basit bir yapı genellikle daha doğru başlangıçtır; dağıtık mimariye gerçek ihtiyaç doğduğunda geçin.

Sıkça Sorulan Sorular

Mikroservis mimarisi bir dağıtık sistem midir?

Evet. Mikroservislerde uygulama, ağ üzerinden haberleşen bağımsız servislere bölünür. Bu nedenle dağıtık sistemlerin ağ gecikmesi ve tutarlılık gibi zorlukları mikroservislerde de görülür.

Dağıtık sistem ile paralel hesaplama aynı şey mi?

Tam olarak değildir. Paralel hesaplama genellikle tek bir makinedeki ya da sıkı bağlı bir kümedeki işlemcilerin aynı işi bölüşmesidir. Dağıtık sistemde ise bağımsız bilgisayarlar ağ üzerinden mesajlaşarak çalışır.

İlgili terimler

CAP Teoremi(CAP Theorem)CAP teoremi, dağıtık bir veri sisteminde ağ bölünmesi yaşandığında tutarlılık (Consistency) ile erişilebilirlik (Availability) arasında seçim yapmak zorunda kalındığını söyleyen ilkedir. Bölünme toleransı (Partition tolerance) dağıtık sistemlerde feda edilemeyen özelliktir.Mikroservis(Microservices)Mikroservis, bir uygulamanın her biri tek bir işe odaklanan, kendi başına geliştirilip dağıtılabilen ve birbiriyle genellikle API ya da mesaj kuyruğu üzerinden haberleşen küçük servislere bölündüğü mimari yaklaşımdır.Hata Toleransı(Fault Tolerance)Hata toleransı (fault tolerance), bir sistemin bileşenlerinden biri ya da birkaçı arızalandığında bile kesintisiz ya da kabul edilebilir düzeyde çalışmaya devam edebilme yeteneğidir. Yedeklilik ve otomatik devralma ile sağlanır.Replikasyon(Replication)Replikasyon, bir veritabanındaki verilerin bir veya daha fazla sunucuya sürekli olarak kopyalanmasıdır. Sunuculardan biri arızalandığında hizmetin sürmesine ve okuma yükünün birden fazla sunucuya dağıtılmasına yardımcı olur.Sunucu(Server)Sunucu (server), ağ üzerinden başka bilgisayarlara ve cihazlara veri, dosya, web sayfası ya da uygulama hizmeti sağlayan bilgisayar veya yazılımdır. İstek gönderen tarafa istemci denir.Bulut Depolama(Cloud Storage)Bulut depolama, dosyaların ve verilerin kendi cihazınız yerine bir sağlayıcının internet üzerindeki sunucularında saklanmasıdır. Dosyalara internet bağlantısı olan her cihazdan erişilebilir ve kapasite ihtiyaca göre artırılabilir.İşlemci(CPU)İşlemci (CPU, merkezi işlem birimi), bilgisayarda programların komutlarını çalıştıran, hesaplama ve mantık işlemlerini yapan ana bileşendir. Performansı çekirdek sayısı, saat hızı ve mimarisiyle belirlenir.Hata Ayıklama(Debugging)Hata ayıklama (debugging), bir yazılımdaki hatanın nedenini bulma, anlama ve düzeltme sürecidir. Hatayı yeniden üretmek, kaynağını daraltmak ve düzeltmeyi test etmek bu sürecin temel adımlarıdır.