Java Microservices 3D logosu yanında üç bağlantılı Java mikroservis düğümü bembeyaz arka planda premium kompozisyon

Java Microservices eğitimi, Spring Boot ekosistemiyle dağıtık servisleri test edilebilir biçimde kurmak için tasarlandı. Spring Boot ile microservice'i hızlı ayağa kaldırma, OpenAPI ile sözleşme tabanlı belgeleme, Spring Cloud Gateway ve Eureka ile servis ekosistemini örme eğitimin omurgasıdır.

Eğitim sonunda katılımcı, Resilience4j ile circuit breaker, retry ve rate limiter uygular; Saga ve Outbox pattern ile distributed transaction yönetir; gRPC ile yüksek performanslı servisler arası iletişim kurar. Micrometer, Prometheus ve Grafana ile observability hattı; Docker ve Kubernetes ile deploy eğitimin operasyonel tarafıdır.

Katılımcı Profili

Bu eğitim, Spring Boot ile dağıtık servisleri test edilebilir biçimde kurmak isteyen rollere yöneliktir:

  • Java Geliştiriciler: Spring Boot ile microservice yazan mühendisler
  • Backend Mühendisleri: Dağıtık sistem deneyimi kazanmak isteyen ekipler
  • Solution Architect'ler: Microservice mimari ve servis sınırı tasarlayan roller
  • DevOps Mühendisleri: Spring Boot servisini Kubernetes'e deploy eden ekipler
  • Migration Ekipleri: Monolith'ten microservice'e geçiş yapan Java ekipleri

Ön Gereklilikler

Bu eğitime katılım için aşağıdaki ön bilgiler önerilir:

  • Java ve Spring Boot ile temel REST servis geliştirme deneyimi
  • HTTP, JSON ve REST API kavramlarında rahatlık
  • Maven veya Gradle ile build süreci bilgisi
  • Docker konteyner kavramına giriş düzeyi aşinalık
  • Message queue (RabbitMQ, Kafka) kavramına temel aşinalık

Süresi ve Tarihi

Süre: 2 gün. Bu süre standart program içindir; ek modüllere ve hedefe göre süre özelleştirilebilir.
Eğitim tarihleri ve saatleri, ekibinizin uygunluğuna göre birlikte planlanır.

Kazanımlar

Eğitim bitiminde katılımcı, Spring Boot ekosistemiyle dağıtık servisleri test edebilen biçimde kurar:

  • Spring Boot ile microservice'i hızlı ayağa kaldırır ve OpenAPI ile belgeler
  • Spring Cloud Gateway, Eureka ve Config Server'ı doğru rolde kullanır
  • Resilience4j ile circuit breaker, retry ve rate limiter uygular
  • Saga ve Outbox pattern ile distributed transaction yönetir
  • gRPC ile servisten servise yüksek performanslı iletişim kurar
  • Micrometer, Prometheus ve Grafana ile observability hattı çeker
  • Docker ve Kubernetes manifestleriyle Spring Boot servisini deploy eder

Java Microservices Eğitimi Konuları

1. Spring Boot ve Microservice Felsefesi

  • Monolith vs microservice trade-off
  • Spring Boot starter ve auto-configuration
  • Stateless service tasarım prensibi
  • API versioning ve backward compatibility
  • Resmi kaynak: Spring microservices

2. Spring Cloud - Config, Discovery, Gateway

  • Spring Cloud Config Server ile merkezi config
  • Eureka, Consul service discovery
  • Spring Cloud Gateway ile API Gateway
  • LoadBalancer ve ribbon alternatifi

3. REST API ve OpenAPI

  • RESTful endpoint tasarımı
  • Spring Web ve @RestController
  • OpenAPI (Swagger) ile dokümantasyon
  • HATEOAS ve hypermedia
  • Content negotiation ve versioning

4. Feign Client ve Resilience4j

  • OpenFeign declarative HTTP client
  • Resilience4j: Circuit Breaker, Retry, Bulkhead
  • Rate limiter ve time limiter
  • Hystrix'in (deprecated) sonrası

5. Event-Driven - Spring Cloud Stream

  • Spring Cloud Stream binder mimari
  • Kafka ve RabbitMQ entegrasyonu
  • Functional programming model
  • Schema Registry ve Avro

6. Saga Pattern Implementation

  • Choreography vs orchestration saga
  • Axon Framework ile event sourcing
  • Compensating transaction tasarımı
  • Outbox pattern Spring ile uygulama
  • Idempotent consumer pattern

7. Distributed Tracing - Sleuth ve Zipkin

  • Micrometer Tracing (Sleuth devamı)
  • Zipkin, Jaeger entegrasyonu
  • Trace ID ve Span ID propagation
  • Baggage ve correlation

8. Distributed Caching - Redis

  • Spring Cache abstraction (@Cacheable, @CacheEvict)
  • Redis ile distributed cache
  • Cache-aside ve write-through pattern
  • Cache invalidation stratejileri

9. Authentication - JWT ve OAuth2

  • Spring Security ve filter chain
  • JWT Bearer token doğrulama
  • OAuth2 Resource Server
  • Keycloak ile identity provider
  • Service-to-service auth: client credentials

10. Containerization - Spring Boot + Docker

  • Spring Boot layered jar
  • Jib ile Dockerless image build
  • Buildpacks ile container image
  • Multi-stage Dockerfile pratiği

11. Kubernetes ve Helm Chart

  • Spring Boot Kubernetes deployment
  • Helm chart yapısı ve template
  • ConfigMap ve Secret ile config
  • Liveness ve readiness probe (Actuator endpoint)

12. Service Mesh - Istio Temel

  • Sidecar pattern ve Envoy proxy
  • Istio: traffic management, security, observability
  • Service mesh ne zaman gerekli
  • Application code vs infrastructure

13. Observability - Micrometer ve Actuator

  • Spring Boot Actuator endpoint'leri
  • Micrometer ile metric toplama
  • Prometheus scrape ve Grafana dashboard
  • Health indicator ve custom check
  • Logback ile structured logging

14. Testing - WireMock ve Testcontainers

  • @SpringBootTest ile integration
  • WireMock ile external service mock
  • Testcontainers ile gerçek DB, Kafka, Redis
  • Contract test: Spring Cloud Contract
  • Chaos test: Chaos Monkey for Spring Boot

JAVA MICROSERVICES EĞİTİMİ ile İlgili
Sıkça Sorulan Sorular ve Cevapları


Spring Cloud Gateway ile API Gateway pattern nasıl uygulanır?

Spring Cloud Gateway reactive routing, filter, rate limit ve circuit breaker'ı tek yerden yönetir. Predicate (path, header, method) ile route eşleşir; filter'lar (token doğrulama, header rewrite) request/response'a uygulanır. Eureka ile entegre dynamic service discovery yapılır.

Resilience4j ile circuit breaker nasıl kurulur?

Resilience4j fonksiyon-programlama tarzı yapılandırma sunar — annotation veya programmatic. Circuit breaker hata oranı eşiği aşınca open duruma geçer, yarı-açıkken test isteği yapar. Retry, rate limiter, bulkhead ile birleştirilerek karmaşık dayanıklılık politikası kurulur. Hystrix'in modern alternatifi.

Saga pattern ile Outbox pattern hangi sorunu çözer?

Saga distributed transaction'da local transaction'ların zincirini ve başarısızlık halinde compensating action'ları tanımlar. Outbox pattern event'i veritabanı transaction'ı içinde aynı anda yazar; ayrı worker bunu message broker'a yayar — at-least-once delivery garantisi sağlar. İkisi birlikte güvenli event-driven mimari kurar.

gRPC ile REST arasında microservice iletişiminde karar?

gRPC HTTP/2 ve Protocol Buffers ile binary, type-safe ve streaming destekli — iç servisler için yüksek throughput. REST JSON ile insan-okunur, browser uyumlu, debug kolay — public API için doğru. Çoğu olgun mimari iki katmanlı: dış API REST, iç iletişim gRPC.

Micrometer ve Prometheus observability'de nasıl çalışır?

Micrometer JVM-agnostic metric facade; Spring Boot Actuator ile entegre. Counter, gauge, timer, distribution summary metric tipleri Prometheus formatında /actuator/prometheus endpoint'inden export edilir. Prometheus pull-based scrape yapar; Grafana ile görselleştirilir. Alert rule kritik metric'lere kurulur.

Helm chart ile Kustomize arasında deployment için karar?

Helm chart template + values pattern ile parametrik deployment paketler — versioning, rollback ve marketplace (Bitnami) desteği güçlü. Kustomize manifest'leri patch ile değiştirir; daha sade ama versioning yok. Yaygın projeler Helm; environment-specific küçük override'lar için Kustomize.