Java 17, Spring Boot, Apache Kafka, RabbitMQ, MongoDB, PostgreSQL, Docker, Docker Compose, Zipkin, Kubernetes ve AWS teknolojilerini kullanarak geliştirilen bir mikroservis projesidir. Bu proje, dağıtık bir mimari üzerinde yüksek performanslı, ölçeklenebilir ve dayanıklı bir sistem oluşturmayı hedeflemiştir.
Proje, bağımsız olarak dağıtılabilen ve yönetilebilen mikroservislerden oluşmaktadır. Her mikroservis, belirli bir işlevi yerine getirir ve diğer mikroservislerle haberleşir.
Apache Kafka ve RabbitMQ kullanılarak yüksek hacimli veri akışı ve mesajlaşma işlemleri yönetilmiştir. Bu sayede, sistemin yüksek trafikli işlemleri sorunsuz bir şekilde karşılaması sağlanmıştır.
MongoDB ve PostgreSQL ile hem NoSQL hem de ilişkisel veritabanı ihtiyaçları karşılanmıştır. MongoDB, esnek veri yapıları için kullanılırken, PostgreSQL daha karmaşık ve ilişkisel veri işlemleri için tercih edilmiştir.
Docker ile mikroservisler konteynerleştirilmiş ve Docker Compose ile bu konteynerler kolayca yönetilmiştir.
Kubernetes kullanılarak mikroservislerin orkestrasyonu sağlanmış ve Zipkin ile dağıtık izleme yapılmıştır.
AWS kullanılarak projenin bulut üzerinde dağıtımı ve yönetimi gerçekleştirilmiştir. Bu sayede, sistemin ölçeklenebilirliği ve erişilebilirliği artırılmıştır.
Proje kapsamında, yazılım geliştirme süreçlerinin yanı sıra mikroservis mimarisinin tasarımı, veri akışı ve mesajlaşma sistemlerinin entegrasyonu, veri tabanı yönetimi, konteynerleştirme ve bulut altyapısının yönetimi gibi kritik görevlerde aktif rol aldım. Ayrıca, performans izleme ve iyileştirme çalışmaları ile sistemin güvenilirliğini ve sürdürülebilirliğini sağladım.
Modern Java özellikleri ile performans ve kod kalitesini artırmak için.
Hızlı ve etkin bir şekilde mikroservisler geliştirmek için.
Yüksek verimli veri akışı ve gerçek zamanlı veri işleme için.
Mesaj kuyruğu ve asenkron iletişim sağlamak için.
NoSQL veri tabanı kullanarak esnek ve ölçeklenebilir veri depolama çözümleri için.
İlişkisel veri tabanı yönetimi ve karmaşık sorgular için.
Uygulamaların konteynerleştirilmesi ve her ortamda tutarlı çalışmasını sağlamak için.
Çoklu konteyner uygulamalarını kolayca yönetmek için.
Mikroservislerin orkestrasyonu ve otomatik ölçeklendirme için.
Bulut altyapısı, depolama ve dağıtık sistemlerin barındırılması için.
Giriş kapısı olarak kullanılarak gelen istekleri yönlendirmek ve güvenlik sağlamak için kullanıldı.
Yük dengesini sağlamak ve hizmet kesintilerini en aza indirmek için kullanıldı.
Dolandırıcılık algılama ve önleme hizmeti olarak kullanıldı, müşteri işlemlerinde güvenliği artırmak için entegre edildi.
Müşteri verilerini yönetmek ve işlemleri gerçekleştirmek için kullanıldı.
Güvenlik ve özel depolama ihtiyaçlarını karşılamak için kullanıldı, konteyner tabanlı uygulama dağıtımını yönetmek için kullanıldı.
Servis keşfi ve yük dengeleme için kullanıldı, hizmetlerin otomatik olarak bulunmasını ve yönlendirilmesini sağladı.
Uygulama yapılandırma yönetimi için kullanıldı, dinamik yapılandırma değişikliklerini kolaylaştırdı.
Dağıtılmış sistemlerdeki hizmetler arası etkileşimleri izlemek ve analiz etmek için kullanıldı, performans sorunlarını tespit etmek ve geliştirmek için kullanıldı.
Bu projede, bir dizi önde gelen teknolojiyi kullanarak kapsamlı bir altyapı geliştirdim. Bu altyapı, API yönlendirme ve güvenliği için bir giriş kapısı sağladı, yük dengesi sağlayarak hizmet kesintilerini minimize etti, müşteri işlemlerinde dolandırıcılığı tespit etmek ve önlemek için bir mikro hizmet entegre ettim, konteyner tabanlı uygulama dağıtımını yönetmek için özel Docker Compose'u kullandım, servis keşfi(discovery) ve yük dengeleme için bir Eureka sunucusu entegre ettim, uygulama yapılandırma yönetimi için bir Yapılandırma Sunucusu(config server) kurdum ve dağıtılmış sistemlerdeki hizmetler arası etkileşimleri izlemek ve analiz etmek için Zipkin'i kullandım.