Spring Cloud Gateway & Routing & Load Balancing İşlemleri
Spring Cloud Dersleri‘ne devam ediyorum.
Bu yazıda Spring Cloud Api Gateway ve LoadBalancer nedir? Bu konularla ilgili bir uygulama örneği yapacağım.
Spring Cloud Api Gateway içerisinde inceleyeceğimiz konu başlıkları şunlar.
- Spring Cloud Gateway Nedir?
- Spring Cloud Gateway Uygulaması
- Routing Nasıl Yapılır.
- LoadBalancing İşelmleri
Spring Cloud Gateway API Nedir?
Çok kısa özet geçecek olursam mikroservislerimizin sadce tek bir çıkış/giriş noktası oluşturarak bir ağ geçidi
oluşturmamızı ve tüm networkü bu gateway üzerinden yönetebilmemizi sağlamaktadır. Spring Cloud Gateway API’lerimize erişimi yönetebilme, güvenlik ve kolay izleme özelliklerini sağlamaktadır.
Spring Cloud Gateway Uygulaması
Gateway uygulaması için kullanacağımız bağımlıklarımız aşağıdaki gibi olacaktır.
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
</dependencies>
Code language: HTML, XML (xml)
Spring Cloud Gateway için bağımlığımızı ekledik ve Eureka’ya bağlanmak içinde bağımlığımızı eklemiş olduk.
application.properties
dosyamıza port ve uygulama adımızı tanımlıyoruz.
spring.application.name=APIGATEWAY
server.port=8088
Routing İşlemleri
Api Gateway’e bağlı olacak olan mikroservislerimiz için mikroservis isimleri ile routing yapma işlemi için application.properties
dosyasına aşağıdaki konumu yazmamız gerekli.
spring.cloud.gateway.discovery.locator.enabled=true
Code language: JavaScript (javascript)
Api Gateway uygulamamız 8088 portundan çalışmaya başlayacaktır.
Örnek Uygulama
Bir Student uygulaması yapacağız. Bu uygulama basit bir rest api olacak aslında ne olduğu pek önemli değil burada dikkat edeceğimiz nokta nasıl erişebileceğimiz.
@RestController
@RequestMapping("/")
public class StudentController {
@GetMapping
public String getHelloWorld(){
return "Merhaba Dünya";
}
}
Code language: PHP (php)
Student uygulamamızın application.properties
dosyasında yazdığımız aşağıdaki gibi olacaktır.
spring.application.name=StudentApp
server.port=8080
Uygulamamız 8080 portundan çalışıyor adı StudentApp ‘dır.
Student uygulamamıza localhost:8080
adresinden çalışıyor ve çıktı aşağıdaki gibi olacaktır.
Merhaba Dünya
Portumuzu değiştirdiğimizi varsayarsak ilgili o portu belirterek erişmemiz gerekmektedir. Spring Cloud Gateway API sayesinde yapılmakta. Bunun nedeni ise Spring Cloud API Gateway uygulamamız üzerinden uygulama adı ile erişebiliyoruz.
Spring Cloud Gateway uygulamamız 8088 portundan çalışıyor ve mikroservisimizin adıda StudentApp yani yeni erişim yolumuz aşağıdaki gibi.
localhost:8088/StudentApp
Gateway uygulamamız üzerinden mikroservisimize erişebiliyoruz ve routing işlemini yapabilmekteyiz. Aynı mikroservisimizin bir çok instancesi olsa bile bizim bilmemiz gereken uygulama adı ve gateway portu yeterli olmaktadır ve oldukça kolay. Bu sayedede Load Balancing işlemini de Spring Cloud Gateway API yönetmektedir.
Sonraki Spring Cloud Dersleri’nde görüşmek üzere.
No Comment! Be the first one.