Spring Boot Eureka Server, mikroservis mimarisinde servis kaydı ve keşfi sağlayan bir servis kayıt merkezi olarak çalışır. Mikroservislerin kendilerini otomatik olarak kaydetmelerine ve diğer servisleri dinamik olarak keşfetmelerine olanak tanır. Bu kılavuzda, Spring Boot ile Eureka serverın nasıl kurulacağını ve yapılandırılacağını öğreneceksiniz.
🌟 Neden Eureka Server Kullanmalıyız?
- Servis Keşfi: Mikro servislerin otomatik olarak kaydolmasını ve keşfedilmesini sağlar.
- Yük Dengeleme: Ribbon ile istemci taraflı yük dengeleme sağlar.
- Hata Toleransı: Bir servis başarısız olursa alternatif örnekleri bulmaya yardımcı olur.
- Ölçeklenebilirlik: Mikroserivslerin kolayca ölçeklenmesini sağlar.
- Spring Cloud Entegrasyonu: Spring Boot uygulamalarıyla sorunsuz çalışır.
🌟 Gereksinimler
Aşağıdakilerin kurulu olduğundan emin olun:
- ☕ Java Development Kit (JDK) 17+
- 📦 Maven veya Gradle yüklü
🛠 Adım 1: Bağımlılıkları Ekleyin
Maven Yapılandırması:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency>
Gradle Yapılandırması:
implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-server'
📖 Adım 2: Eureka Sunucu Uygulamasını Oluşturun
package com.example.eurekaserver; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication @EnableEurekaServer public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } }
package com.example.eurekaserver import org.springframework.boot.autoconfigure.SpringBootApplication import org.springframework.boot.runApplication import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer @SpringBootApplication @EnableEurekaServer class EurekaServerApplication fun main(args: Array<String>) { runApplication<EurekaServerApplication>(*args) }
🛠 Adım 3: Eureka Server'ı Yapılandırma
Bir application.yml
dosyası oluşturun ve aşağıdaki yapılandırmayı ekleyin:
server: port: 8761 spring: application: name: eureka-server eureka: client: register-with-eureka: false fetch-registry: false server: wait-time-in-ms-when-sync-empty: 5
Not: Eureka Sunucusu kendisini kaydetmez.
▶️ Eureka Server'ı Çalıştırma
Eureka Server uygulamasını başlatın:
./mvnw spring-boot:run
veya Gradle kullanarak:
gradle bootRun
Eureka Server kontrol paneline erişmek için:
http://localhost:8761/
📌 Adım 4: Bir İstemci Uygulamasını Kaydetme
Bağımlılıkları Ekleyin
Maven:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
Gradle:
implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
İstemci Uygulama Yapılandırması
İstemcinin application.yml
dosyasına aşağıdaki yapılandırmayı ekleyin:
spring: application: name: eureka-client eureka: client: service-url: defaultZone: http://localhost:8761/eureka/
İstemci Uygulama Kodu
package com.example.eurekaclient; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @SpringBootApplication @RestController @RequestMapping("/client") public class EurekaClientApplication { @GetMapping public String getClientMessage() { return "Merhaba, Eureka İstemcisi!"; } public static void main(String[] args) { SpringApplication.run(EurekaClientApplication.class, args); } }
package com.example.eurekaclient import org.springframework.boot.autoconfigure.SpringBootApplication import org.springframework.boot.runApplication import org.springframework.web.bind.annotation.GetMapping import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RestController @SpringBootApplication @RestController @RequestMapping("/client") class EurekaClientApplication { @GetMapping fun getClientMessage(): String { return "Merhaba, Eureka İstemcisi!" } } fun main(args: Array<String>) { runApplication<EurekaClientApplication>(*args) }
🏃 İstemci Uygulamayı Çalıştırma
Eureka İstemci uygulamasını başlatın:
./mvnw spring-boot:run
veya Gradle kullanarak:
gradle bootRun
Eureka Server'a kayıtlı olup olmadığını kontrol etmek için şu adresi ziyaret edin:
http://localhost:8761/
Spring Boot Eureka Server, mikro servislerin birbirini dinamik olarak bulmasını sağlayarak ölçeklenebilirlik, hata toleransı ve mikroservisler arası etkili iletişim sağlar.