Page 124 - Yazılım Teknolojileri Araştırma Bülteni 2023
P. 124
124 | Spring Framework
Spring Cloud Stream, hangi mesajlaşma platformu seçilirse seçilsin, olayları tüketmeyi ve üretmeyi
kolaylaştırır. Mikroservisleri, yalnızca birkaç satır kodla gerçek zamanlı mesajlaşma ile birleştirerek
yüksek düzeyde ölçeklenebilir, olay güdümlü sistemler oluşturmaya yardımcı olur.
Spring Boot’un isteğe bağlı enstrümantasyon (instrumentation) aracı mikrometre (micrometer),
ölçümleri doğrudan Prometheus, Atlas ve daha fazlasına göndererek değerli bilgiler sağlar. Gerçek
zamanlı olarak neler olup bittiğini takip edebilmeniz için dağıtılmış izleme sunan Spring Cloud’un
Sleuth ve Zipkin projeleri ile desteklenebilir.
Mikroservislerin küçük, durum bilgisi olmayan yapısı, onları yatay ölçeklendirme için ideal
hale getirir. TAS ve PKS gibi platformlar, yönetim ek yükünüzü büyük ölçüde azaltacak şekilde
ölçeklenebilir altyapı sağlayabilir. Bulut sağlayıcılarını kullanarak birden çok arka uç hizmetine
kolaylıkla ulaşabilirsiniz.
2. Reaktif Uygulamalar (Reactive)
Reaktif sistemler, belirli özellikleri nedeniyle düşük gecikmeli ve yüksek verimli iş yükleri için
idealdir. Project Reactor ve Spring portföyü birlikte çalışarak, geliştiricilerin duyarlı, esnek ve
mesaj odaklı kurumsal düzeyde reaktif sistemler oluşturmasına olanak tanır.
Reaktif programlama, geri bildirimi (akış kontrolü) işleyebilen, engelleyici olmayan (non-blocking)
ve asenkron uygulamalar oluşturmak için bir paradigmadır. Reaktif sistemler, modern işlemcileri
daha iyi kullanır. Ayrıca, reaktif programlama geri bildirimin dahil edilmesiyle, ayrılmış bileşenler
arasında daha iyi esneklik sağlar.
Project Reactor, tamamen engelleyici olmayan bir temel sağlayarak geri bildirim desteği sunar.
Spring ekosistemindeki reaktif yığının temelidir ve Spring WebFlux, Spring Data ve Spring Cloud
Gateway gibi projelerde yer alır.
Geliştiricilerin engelleyici koddan engelleyici olmayan koda geçişinin ana nedenlerinden biri
verimliliktir. Reaktif kod, daha az kaynakla daha çok iş yapar. Project Reactor ve Spring WebFlux,
geliştiricilerin potansiyel olarak çok sayıda eş zamanlı bağlantıyı işlemesine olanak tanır ve
böylece daha az mikroservis örneğiyle daha fazla eş zamanlı kullanıcıyı memnun edebilir.
Spring portföyü, iki paralel yığın sağlar. Bir yığın, Spring MVC ve Spring Data yapılarına sahip
bir Servlet API’sine dayanmaktadır. Diğer yığın, Spring WebFlux ve Spring Data’nın reaktif
depolarından yararlanan tamamen reaktif bir yığındır. Her iki durumda da, Spring Security her iki
yığın için de yerel destek sağlar (Şekil 6).