Skip to content

TanerSaydam/MicroserviceEducationalContent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Microservice Eğitim İçeriği

  • Architectural patterns
  • Microservice nedir?
  • Database per Service & Data Ownership
  • Category WebApi oluşturalım
  • Category model için Create/Read işlemleri
  • API Versioning
  • OpenAPI ve Scalar ile endpoint dokümantasyonu
  • Health Check ile uygulama sağlık kontrolü
  • CORS policy
  • Product WebApi oluşturalım
  • Product Create/Read işlemleri
  • Response Compression
  • Service Discovery Pattern (HashiCorp Consul)
  • Resilience Pattern (Polly)
  • Docker image oluşturma
  • Docker compose ile projeleri ayağa kaldıralım
  • Gateway nedir?
  • Ocelot nedir?
  • Gateway projesi oluşturup Ocelot yapısını kuralım
    • RateLimit
    • LoadBalance
    • Service Discovery
    • Authentication
    • Authorization
  • YARP ile Gateway
    • LoadBalance
    • RateLimit
    • Authentication
    • Authorization
    • HealthCheck
  • Ocelot vs YARP
  • Order WebAPI oluşturalım ve Create işlemi yapalım
  • Idempotency
  • Payment WebAPI oluşturalım ve Create metodu yazalım
  • Transaction
  • Sync (HTTP/gRPC) vs Async (Message Broker) Communication
  • Saga Pattern
  • Observability (with OpenTelemetry and Jaeger)
  • Aspire

Consul

Docker komutu (Service Discovery)

docker run -d --name consul -p 8500:8500 hashicorp/consul:latest

NuGet Package

Steeltoe.Discovery.Consul

Polly kütüphanesi BackoffType

//🧩 DelayBackoffType Enum Türleri
//Constant    Her denemede sabit süre bekler.    Delay = 5s → 5s, 5s, 5s//Constant    Her denemede sabit süre bekler.    Delay = 5s → 5s, 5s, 5s
//Linear    Her denemede gecikme lineer (doğrusal) artar.    Delay = 5s → 5s, 10s, 15s//Linear    Her denemede gecikme lineer (doğrusal) artar.    Delay = 5s → 5s, 10s, 15s
//Exponential    Her denemede gecikme katlanarak (üstel) artar.    Delay = 5s → 5s, 10s, 20s, 40s//Exponential    Her denemede gecikme katlanarak (üstel) artar.    Delay = 5s → 5s, 10s, 20s, 40s

Ocelot

Ocelot
Ocelot.Provider.Consul
https://ocelot.readthedocs.io/

YARP

Yarp.ReverseProxy
https://learn.microsoft.com/tr-tr/aspnet/core/fundamentals/servers/yarp/getting-started?view=aspnetcore-10.0

RabbitMQ

https://www.rabbitmq.com/tutorials/tutorial-one-dotnet
docker run -d --name rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq:3-management

Saga Pattern

Saga Pattern iki yaklaşımdan oluşur:

Choreography-based Saga: Servisler event’ler üzerinden birbirleriyle doğrudan haberleşir, merkezi bir yönetici yoktur. Her servis kendi adımını bilir ve gerektiğinde telafi (compensation) işlemini kendisi yapar.

Orchestration-based Saga: Süreci merkezi bir orchestrator yönetir. Servislere hangi adımı ne zaman çalıştıracağını söyler, hata durumunda telafi adımlarını koordine eder.


Open Telemetry

OpenTelemetry.Exporter.Console
OpenTelemetry.Exporter.OpenTelemetryProtocol
OpenTelemetry.Extensions.Hosting
OpenTelemetry.Instrumentation.AspNetCore
OpenTelemetry.Instrumentation.Http
docker run -d --name jaeger -p 16686:16686 -p 4317:4317 -p 4318:4318 cr.jaegertracing.io/jaegertracing/jaeger:2.11.0

Docker CLI komutları

  • Network komutları
#docker network listele
docker network ls 

#kullanılmayan networkleri sil
docker network prune 

#yeni network oluştur
docker network create network_name
  • Image ve container komutları
#image dönüştürme - eğer docker file olan ana dizinde ise build komutu
docker build -t image_name . 

#image dönüştürme - eğer docker file alt dizinde ise
docker build -t image_name -f Microservice.ProductWebAPI/Dockerfile . 

#container oluşturma
docker run -d --name container_name -p 6001:8080 image_adi

#networke bağlı container oluşturma
docker run -d --network eticaret --name product -p 6001:8080 productapi 
  • docker compose build
#eğer ilk oluşturuyorsak
docker compose up -d

#eğer tekrar rebuild yapacaksak
docker compose up -d --build

About

Microservice Eğitim İçeriği Örneği

Topics

Resources

Stars

Watchers

Forks