Bu repo, çeşitli teknolojileri ve araçları kullanarak gerçekleştirdiğim alıştırmaları ve projeleri içerir. Bu projeler, microservice mimarisi, Spring Boot, Spring Cloud, Kafka, Elasticsearch, MongoDB ve Docker gibi modern teknolojilerin kullanımını kapsar.
- Proje Hakkında
- Kullanılan Teknolojiler
- Kurulum
- Kullanım
- API Dokümantasyonu
- Örnek Konfigürasyonlar
- Kullanıcı Senaryoları
- Destek
- Sorun Giderme
Bu projede aşağıdaki teknolojileri ve teknikleri kullanarak çeşitli alıştırmalar gerçekleştirdim:
- Kafka: Mesajlaşma ve asenkron iletişim için Kafka kullanıldı. Kafka, mikroservisler arasında mesaj göndermek için kullanıldı.
- Elasticsearch: Arama ve filtreleme işlemleri için Elasticsearch kullanıldı. Elasticsearch, veri üzerinde hızlı ve ölçeklenebilir arama gerçekleştirmek için kullanıldı.
- MongoDB: NoSQL veri tabanı olarak MongoDB kullanıldı. MongoDB, veri saklama ve yönetimi için kullanıldı.
- Spring Boot: Microservice uygulamaları geliştirmek için kullanıldı. Spring Boot, uygulama yapılandırmasını basitleştirdi ve hızlı geliştirme imkanı sundu.
- Spring Cloud: Microservice mimarisi için Spring Cloud kullanıldı. Spring Cloud, servis keşfi, yapılandırma yönetimi ve API gateway işlevlerini sağladı.
- Spring Config Server: Konfigürasyon yönetimi için Spring Config Server kullanıldı. Bu, merkezi bir konfigürasyon sunucusu sağladı.
- Docker: Uygulama ve servisleri konteynerize etmek için Docker kullanıldı. Docker, geliştirme, test ve dağıtım süreçlerini standartlaştırdı.
- Feign Client: Mikroservisler arasında HTTP istekleri yapmak için Feign Client kullanıldı. Feign Client, Product ve Order servisleri arasında iletişim sağladı.
- Kafka: Kafka Resmi Dokümantasyonu
- Elasticsearch: Elasticsearch Resmi Dokümantasyonu
- MongoDB: MongoDB Resmi Dokümantasyonu
- Spring Boot: Spring Boot Resmi Dokümantasyonu
- Spring Cloud: Spring Cloud Resmi Dokümantasyonu
- Spring Config Server: Spring Cloud Config Server Dokümantasyonu
- Docker: Docker Resmi Dokümantasyonu
- Feign Client: Feign Resmi Dokümantasyonu
Projeyi yerel makinenize klonlamak için:
git clone https://github.com/oguzhansecgel/MicroserviceExample-Java.git
cd MicroserviceExample-Java
Gerekli bağımlılıkları yüklemek için Maven kullanın:
mvn install
Uygulamayı başlatmak için:
mvn spring-boot:run
- Kafka broker'ını başlatın.
- Gerekli konfigürasyonları yapın.
- Mesaj göndermek ve almak için ilgili topic'leri oluşturun.
- Elasticsearch servisini başlatın.
- Veri indeksleme işlemleri yaparak arama fonksiyonlarını test edin.
- MongoDB servisini başlatın.
- Veritabanı bağlantılarını yapılandırın.
- Veri ekleyin ve sorgulayın.
- Spring Boot uygulamalarını başlatın.
- Uygulamanızın işlevlerini test edin.
- Spring Cloud Config Server ve diğer Spring Cloud servislerini başlatın.
- Merkezi konfigürasyonu yönetin.
- Docker ile konteynerleri oluşturun ve başlatın.
- Uygulamayı Docker konteynerlerinde çalıştırın.
Eğer API'ler mevcutsa, API uç noktaları ve kullanım detayları burada yer alır.
- Belirli bir fiyat aralığındaki ürünleri getirmek için:
GET /product/productPriceBetween?lower={lower}&upper={upper}
- Tüm ürünleri listelemek için:
GET /product/findAll
- Belirli bir isimle ürünleri aramak için:
GET /product/findByProductName?productName={productName}
- Tüm ürünleri listelemek için:
GET /product/findAll
- Belirli bir ürünü ID'si ile görmek için:
GET /product/getByIdProduct/{id}
- Yeni bir ürün eklemek için:
POST /product/createProduct
- Belirli bir ürünü silmek için:
DELETE /product/deleteProduct/{id}
- Belirli bir ürünü güncellemek için:
PUT /product/updateProduct/{id}
- Belirli bir ürünün stoğunun düşmesi için :
PUT /product/decrementStock/{id}
- Yeni bir sipariş oluşturmak için:
POST /orders/createOrder?productId={productId}
- Tüm siparişleri listelemek için:
GET /orders/getListByAllOrder
spring.kafka.bootstrap-servers=localhost:9092
spring.elasticsearch.rest.uris=http://localhost:9200
spring.data.mongodb.uri=mongodb://localhost:27017/orderservice
- Kafka ile Mesaj Gönderme: Kafka kullanarak mikroservisler arasında mesaj gönderin ve alın. Kafka'nın topic yapısını kullanarak veri akışını yönetin ve mesajları işleyin.
- Elasticsearch ile Arama: Elasticsearch üzerinde veri indeksleyin ve arama fonksiyonlarını test edin. Verilerinizi hızlı ve ölçeklenebilir bir şekilde aramak için Elasticsearch'ün sorgu yeteneklerini kullanın.
- MongoDB ile Veri Saklama: MongoDB'de veri saklayın ve sorgulama işlemleri yapın. MongoDB'nin NoSQL özelliklerinden yararlanarak veri yönetimini gerçekleştirin.
- Feign Client ile İletişim: Feign Client kullanarak mikroservisler arasında veri alışverişi yapın. Feign Client, HTTP isteklerini kolayca yönetmenizi sağlar ve servisler arası iletişimi basitleştirir.
Herhangi bir sorunuz veya desteğe ihtiyacınız varsa, lütfen açık bir sorun oluşturun veya benimle iletişime geçin.