Spring Cloud Netflix’e Giriş
Merhabalar ben Mustafa. Spring Cloud Netflix yazı serisi ile karşınızdayım. Bu yazı serisinde Spring Cloud ve Netflix OSS hakkında sizlerle bildiklerimi ve öğrendiklerimi paylaşacağım. Bu yazı serinin intro niteliğindeki ilk yazısıdır. Serinin diğer yazıları, aşağıda giriş tanımı olarak açıklanan kavramların ayrı ayrı yayınlanması ve örneklendirilmesi şeklinde olacaktır. Yazı serisinin son aşamasında ise Zuul, Eureka, Hystrix ve Ribbon’ un beraber kullanıldığı basit ancak best-practice niteliğinde bir örnek yapacağız.
Spring Cloud Netflix, özellikle mikroservislerin yaygınlaşmaya başlamasıyla hayatımıza giren Spring Boot uygulamaları için Netflix OSS entegrasyonu sunan bir yapıdır. Buna ilaveten, Spring Boot ile Netflix araçları entegre edildiği için konfigüre etmesi ve kullanması da oldukça basittir.
Spring Cloud’ un “Spring Cloud Netflix” adı altında bize sunduğu, mikroservislerle beraber kullanılan ve servislerimizi kolayca yönetmemizi sağlayan bir takım araçları vardır.
Dilerseniz Spring Cloud Netflix’ in bize sunduğu özelliklerden genel olarak bahsedelim.
Service Discovery: Yazılan mikro servislerin ayağa kaltıklarında kendilerini konfigüre edilen bir hub’a kayıt etmesi ve daha sonra bu hub’ daki tüm servislerin birbirinden haberdar olarak iş yapmasına olanak vermektedir. Bu sayede tüm servis örneklerinin ip,port bilgilerini tutmak zorunda kalmıyoruz. Service discovery olarak, Consul, Zookeper gibi opsiyonlar da sunuluyor ancak biz Netflix in geliştirmiş olduğu Eureka’ yı inceleyeceğiz.
Circuit Braker: Devre/Adım/İşlem kesici. Devre kesiciler genellikle belirli durumlarda belirli servislere erişimi koruma altına almak için kullanılmakla beraber belirli/spesifik bir şekilde gelen bir istek işleme konulduğunda hata alınması kaçınılmaz ise yine bu durumda da devre kesici kullanılabilir. Ayrıca kullanıcıya bu duruma özel bir mesaj döndürülebilir ya da bu servise gelmeden önce yapması gereken bir işlem var ancak yapılmamış ise ilgili servislere yönlendirme yapılabilir.
Burada devre kesici olarak biz Netflix’ in geliştirmiş olduğu Hystrix adlı aracı inceleyeceğiz. Hystrix de Spring Boot ile entegre etmesi, konfigüre etmesi ve kullanması oldukça kolay bir araçtır. Ayrıca Hystrix Dashboard adlı aracı kullanarak servislerimize gelen isteklere verdiğimiz cevapları ve bu cevapların sayılarını ve türlerini, response-time’ larını görebiliriz.
Client Side Load Balancer: Burada Round Robin algoritması ile çalışan ve kullanımı oldukça basit olan Ribbon adlı load-balancer’ ı inceleyeceğiz.
Router and Filter: Burada kullanacağımız araç yine Netflix’ in geliştirmiş olduğu Zuul Proxy’ dir. Zuul ile koşullar ve filtreler yazacağız, gelen istekleri diğer servislerimize zuul ile yönledireceğiz.
Bir sonraki yazı olan, Eureka Service Discovery Tool yazısında görüşmek üzere, hoşçakalın.
1 Comment