Hazelcast Nedir?

Bu yazıda Hazelcast’in ne olduğu ve çalışma mantığının nasıl olduğundan bahsedeceğim.
Hazelcast açık kaynak kodlu Java tabanlı veri kümeleme, dağıtımı için yapılmış bir yapıdır. Hazelcast verileri anlık olarak hafızada tutuyor. JVM’ler sayesinde verileri eşit şekilde balans etmeye çalışarak veri yükünü düzgün şekide paylaştırıp, hızlı güvenli ve en az veri kaybı için çalışan bir yapıdır Hazelcast. JVM’leriniz ve sunucular arasında bu veri yükünün dağılımını belirleyebiliyoruz. Hazelcast farklı instance’ler arasında haberleşebilir ve diğer instance’lere erişebilirsiniz.
Hazelcast Java tabanlı olsada , C#’ı da desteklemektedir. Hazelcast Maven dostudur ve uygulamanıza eklemek isterseniz sadece ihtiyacınız olan dosyayı indirip projenize dahil etmeniz yeterlidir. Başka bir bağımlılık istemiyor. Hazelcast yönetimini konsol üzerinden yapabildiğimiz gibi web arayüzü üzerinden de yönetebiliyoruz.
Hazelcast verileri hafızada bir map şeklinde tutuyor. Bu verileri Hazelcast aracılığı sadece yönetmekle kalmayıp, verileri kitleme, kuyruğa alma gibi işlemleri yapabiliyoruz. Veriler ram’de tutulurken bir o kadarı da backup şeklinde yine bellekler arasında paylaştırılıp veri kaybını en aza indirmeyi amaçlıyor. Verileri kısaca bir map gibi ramde tuttuğundan bahsettim ancak Queue, List, Map, Set, Lock gibi farklı veri tipleri de tutabiliyor.
Varolan sunucunuza ve Hazelcast sistemine yeni sunucu ya da JVM eklendiği zaman bu sunucu ile veriler hemen paylaşılmaya başlıyor.
Projenize Hazelcast’i dahil etmek isterseniz Maven kullanarak
<dependency> <groupId>com.hazelcast</groupId> <artifactId>hazelcast</artifactId> <version>3.5.3</version> </dependency>
Ardından sınıflarınızda kullanmak için;
import com.hazelcast.core.*; import com.hazelcast.config.*;
yazarak Hazelcast’in tüm yeteneklerini projemizde kullanabiliriz.
Projeye de nasıl kullanırım diyorsanız;
Config cfg = new Config(); HazelcastInstance instance = Hazelcast.newHazelcastInstance(cfg);
ardından
Map<Integer, String> mapKisi = instance.getMap("kisi"); mapKisi.put(1, "Burak"); mapKisi.put(2, "Ahmet");
ekleyerek map’imizi oluşturuyoruz geri kalan ise Hazelcast config ayarları ve dinleyeceği adresleri belirlemek yetiyor. Kuyruk’taki ya eklenen verileri otomatik ya da sizin belirlediğiniz şekilde dağıtımını yapabiliyor.
Bu dağıtık sistemin en zor tarafı verinin sunucu ve kullanıcı arasında gezinirken verinin kaybolup ya da kaybolmadığını anlaşılamadığı zamanlarda ortaya çıkıyor. O instancenin ne oluduğuna karar verilebilmesi için aktif mi değil mi bilinmesi gerek ve Hazelcast işlemini ona göre yürütmesi gerek. Bu tip durumlara zombi instance deniyor çünkü veride ya da istemcide bir hata patlamadığını anlayamıyorsunuz diğer instanceler bu zombi instanceyi beklemek durumunda kalıyor.
Talip Öztürk’ün 2008 yılında duyurduğu Hazelcast, iş modeli ise Enterprise ürünü. Apple, Turkcell, Avea, Sahibinden.com, Ericsson, Mozilla gibi büyük firmalar Hazelcast’in ürününden yararlanmakta. Ülkemiz dahil 2 ülkede ofisi bulunan Hazelcast 14 Milyon Dolar değerlenmeye sahip bir şirket.
No Comment! Be the first one.