Hazelcast
Merhaba, bu yazımda sizlere Hazelcast nedir? Hazelcast Management Center nedir ve nasıl kullanılır? Hazelcast’i kimler neden kullanırlar? sorularının cevaplarını bildiğim kadarıyla basite indirgemeye çalışacağım.
Hazelcast Nedir?
Hazelcast java tabanlı opensource bir kütüphanedir. (Yazının sonundaki github linkinden kütüphaneye ulaşabilirsiniz). Hazelcast’in en büyük özelliklerinden biri veriyi bellekte dağıtılmış şekilde tutan bir veri ızgara platformu olmasıdır, bu bize hız anlamında önemli bir avantaj sağlar. Veriyi bellekte tutması akla verilerin kaybolma riskini getirebilir. Fakat Hazelcast bu durumu Snapshot ile engelliyor. Eğer verileriniz kaybolursa aşağıdaki örnekteki gibi bir ekran görüntüsü alıyor ve eski verilerinizi tekrar geri alabiliyorsunuz.
Hazelcast Veriyi Nasıl Tutar?
Member => Hazelcast’teki hesaplama ve veri depolama birimidir.
Hazelcast Cluster => Birbirleriyle iletişim halinde olan Member’lar kümesidir. Hazelcast’i çalıştıran Member’lar Cluster ayağa kalktığında otomatik olarak birbirlerini tanırlar.
Partitions => Cluster içindeki Memberlar arasında eşit olarak dağıtılmış verileri depolayan bölümdür.
Partitionlar sisteminizin bellek kapasitesine bağlı olarak binlerce veri girişine sahip olabilen bellek bölümleridir. Her partition’ın memberlar içinde dağıtılmış birden fazla kopyası olabilir. İlk kopyaya “primary” diğerlerine ise “backups” adı verilir. Bir partition’ın primary kopyasına sahip olan cluster member’a “partition owner” denir. Belirli bir veri girişini okurken veya yazarken veri girişini içeren partition owner ile iletişim kurarsınız.
Hazelcast varsayılan olarak 271 adet partition sunar. Yani tek member’lı bir cluster ayağa kaldırdığımızda içinde 271 adet partition vardır. Aşağıdaki görsel tek member’lı bir Hazelcast Cluster’ının bölümüdür.
Eğer 2 member’lı bir Cluster açarsak partitionları aşağıdaki görseldeki gibi böler.
Bu görseldeki siyah partitionlar primarylerdir ve maviler ise backuplardır. İlk member’ın backuplarını 2. member tutarken 2. member’ın backuplarını ise ilk member tutar.
Hazelcast Management Center Nedir ve Nasıl Kullanılır?
Hazelcast Management Center, Hazelcast’in verileri, verilerin kapladıkları yerleri, kaç tane veri olduğu gibi detayları görebildiğimiz ve bunları düzenleyebildiğimiz bir arayüzdür. Hazelcast Management Center’ı kendi localinizde ayağa kaldırmak için Docker’ı kullanabilirsiniz. Docker ile “docker pull hazelcast/management-center” komutunu kullanarak önce pullayıp sonra docker run --rm -p 8080:8080 hazelcast/management-center komutunu kullanarak 8080 portunu kullanarak bir Hazelcast Managament Center ayağa kaldırmış olursunuz ve http://localhost:8080 linkinden bu arayüze ulaşabilirsiniz. Eğer bunu cloudda kullanmak istiyorsanız sanal makinenizin IP adresini kullanabilirsiniz (Örn:34.77.94.205:8080) fakat 8080 portunun dışarıdan erişimini sanal makinenizde açmanız gerekir.
Get Alperen Aksu’s stories in your inbox
Join Medium for free to get updates from this writer.
Aşağıdaki fotoğrafta Hazelcast Management Center’ın içine açtığım “capitals” Mapinin özellikleri var. Sağ üstteki MAP BROWSER butonuna tıklayarak Mapin içine put ettiğimiz verileri key değerleriyle bulabiliriz.
Örneğin önceden map’e put ettiğim Key değeri 34 olan İstanbul değerini ne kadar yer kapladığını vs. görebilirim.
Aşağıdaki fotoğrafta ise 2 tane Member ve bunlar arasında dağıtılmış 41 tane veri var. Partition kısmındaki sistem burda somutlaşıyor. Burda Hazelcast 41 tane veriyi 25 + 16 olmak üzere 2 member arasında paylaştırmış ve bu verilerin primary ve backup’ları da yine partitionlar halinde tutuluyor.
Hazelcast’i Kimler Neden Kullanırlar?
Hazelcast’in müşterileri genelde bir proje üstüne çalışan şirketlerdir. Sistemlerin yük yoğunluğunu azaltmak için Hazelcast’i kullanırlar. Örneğin bir şirket hem Database’e fazla yük binmemesi için hem de veriyi Ram’de dağıtılmış şekilde tuttuğu için hızlı olan Hazelcast’i kullanabilir. Verileri Hazelcast Management Center üzerinden gerekli yerlere iletebilir.
Hazelcast Kütüphanesi
KAYNAKÇA




