Press ESC to close

ELASTICSEARCH ARCHITECTURE

Elasticsearch, büyük miktarda yapılandırılmamış veriyi hızlı bir şekilde aramak ve analiz etmek için kullanılan açık kaynak kodlu bir arama ve analiz motorudur. RESTful bir yapıya sahiptir ve özellikle log, işlem ve metin bazlı veri analitiği için idealdir. Elasticsearch, ölçeklenebilirliği sayesinde verileri indeksleyerek hızlı aramalar sağlar ve gerçek zamanlı analizlerle işletmelerin verilerini daha etkili kullanmalarına yardımcı olur. Büyük veri çözümlerinde yaygın olarak tercih edilen Elasticsearch, esneklik ve hız özellikleriyle öne çıkar. Elasticsearch,  ELK yığınının (Elastic, Logstash, Beats ve Kibana) bir parçası olarak çalışır. Ayrıca Grafana veya Knowi gibi diğer harici görselleştirme araçlarıyla da kullanılabilir.

Elasticsearch Mimarisi: Ölçeklenebilir ve Güçlü Bir Arama Motoru

Elasticsearch, büyük miktarda veriyi hızlı ve etkili bir şekilde arama ve analiz etme amacıyla tasarlanmış, açık kaynak kodlu bir arama motorudur. Temelde bir NoSQL veri tabanı olan Elasticsearch, özellikle yüksek hacimli veri ve karmaşık sorgularla başa çıkmak için geliştirilen bir mimariyi kullanır. Bu yazıda Elasticsearch’ün temel bileşenlerini ve mimari yapısını inceleyeceğiz.

1. Temel Bileşenler

Elasticsearch, esneklik ve ölçeklenebilirlik sağlamak için belirli bileşenler üzerine kuruludur. Bu bileşenler, veriyi düzenli bir şekilde dağıtmak ve arama performansını optimize etmek için birlikte çalışır.

Cluster 

Elasticsearch, birden fazla node’dan (düğüm) oluşan bir cluster yapısına sahiptir. Cluster, tüm veriyi saklayan ve sorguları işleyen birden fazla node’un birlikte çalıştığı bir yapıdır. Cluster, veri fazlalığı ve hata toleransı için oldukça önemlidir.

Introduction to the Elasticsearch Architecture

Cluster Name: Cluster’ın tüm node’ları aynı isimdeki bir cluster’da toplanır. Varsayılan olarak “elasticsearch” ismine sahiptir, ancak üretim ortamında benzersiz bir isim kullanılması önerilir.

Node (Düğüm)

Node, Elasticsearch’te veri depolayan ve arama işlemlerini yürüten en temel bileşendir. Her bir node, bir Elasticsearch sürecidir ve farklı görevleri üstlenebilir. Cluster’daki her node, diğer node’larla birlikte çalışarak veriyi işler.

Node Türleri:

Master Node: Cluster yönetim görevlerini (örneğin, shard atamaları, indeksleme ve node’ları izleme) üstlenir.

Data Node: Veriyi saklayan ve CRUD işlemlerini gerçekleştiren nodelardır. Yoğun veri işleme ve arama yükünü taşır.

Ingest Node: Veri girerken ön işlem görevlerini yerine getirir.

Coordinating Node: Sorguları alıp diğer node’lara dağıtır ve sonuçları toplar.

Index (İndeks)

Elasticsearch’te veri, index adı verilen mantıksal yapılarda saklanır. Bir indeks, belirli bir veri setini veya belge grubunu içerir. SQL dünyasında bir tabloya benzeyen indeksler, Elasticsearch için temel depolama birimleridir.

Document (Belge)

Veriler, document (belge) adı verilen JSON formatında depolanır. Bir belge, Elasticsearch indeksinde saklanan bir veri birimidir. Örneğin, bir müşteri kaydı veya ürün bilgisi birer belgedir.

Shard ve Replica (Parça ve Kopya)

Primary shards & Replica shards in Elasticsearch | by Nidhi Gupta | Medium

Her indeks, shard adı verilen parçalara bölünür. Bu, veriyi daha küçük parçalara ayırarak paralel işlemeyi sağlar. Elasticsearch ayrıca veri güvenliği ve erişilebilirliği sağlamak için her shard’ın replica adı verilen kopyalarını oluşturur.

Primary Shard: Verinin orijinal kopyası.

Replica Shard: Verinin yedek kopyası, yüksek erişilebilirlik için kullanılır.

2. Elasticsearch Dağıtık Mimarisi

Find Answers that matter in Real-time with Elasticsearch

Elasticsearch’in dağıtık mimarisi, veriyi parçalara ayırıp dağıtarak hem veriye hızlı erişim sağlar hem de hatalara karşı dayanıklılığı artırır. Bu sistem, büyük veri kümelerini etkin bir şekilde işlemenin yanı sıra esneklik ve ölçeklenebilirlik açısından önemli avantajlar sunar.

Shard ve Replica Yönetimi

Shard’ların Dağıtımı: Bir indeksin shard’ları cluster’daki farklı data node’lara dağıtılır. Bu sayede verinin farklı nodelara dağılmasıyla veri işleme yükü dengelenir.

Replica Yönetimi: Replica shard’ları, primary shard’ın kopyası olarak başka bir node üzerinde saklanır. Böylece bir node devre dışı kalsa bile veriye erişim devam eder.

Sorgu Yönlendirme ve Koordinasyon

Koordinasyon node’u, bir sorgu geldiğinde bu sorguyu ilgili node’lara yönlendirir. Sorgu tamamlandığında, tüm sonuçları toplar ve istemciye yanıt olarak döner. Bu yapı, sorguların paralel olarak yürütülmesini ve sonuçların hızla döndürülmesini sağlar.

3. Elasticsearch Veri Akışı ve Sorgulama Süreci

Veri akışı, Elasticsearch’te şu şekilde gerçekleşir:

1. İndeksleme Süreci: Veri girildiğinde JSON formatında belgeler olarak saklanır ve indekslenir. Bu indeksleme, verinin hızlıca bulunabilmesi için önemlidir.

2. Arama Süreci: Kullanıcı sorguları koordinasyon node’u tarafından karşılanır ve arama işlemi ilgili data node’lara iletilir.

3. Sorgu Sonuçlarının Birleştirilmesi: Her bir node sorgu sonuçlarını geri döndürür ve sonuçlar koordinasyon node’u tarafından birleştirilip istemciye iletilir.

Bu süreç, Elasticsearch’ün hızlı sorgu yeteneğini ortaya koyan ve performansını optimize eden bir veri akışıdır.

4. Elasticsearch Yüksek Erişilebilirlik ve Ölçeklenebilirlik

Elasticsearch, cluster mimarisi sayesinde yüksek erişilebilirlik ve ölçeklenebilirlik sunar. Veri ve işlem yükü, cluster içinde farklı nodelara dağıtılır, bu da aşağıdaki avantajları sağlar:

Yüksek Erişilebilirlik: Replica shard’lar sayesinde bir node devre dışı kalsa bile veri kaybı yaşanmaz ve sistemin kullanılabilirliği korunur.

Yatay Ölçeklenebilirlik: Cluster’a yeni node eklenerek veri depolama ve işlem kapasitesi artırılabilir. Bu özellik, özellikle büyük veri setleriyle çalışan uygulamalar için kritik öneme sahiptir.


Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir