Twitter Youtube Github
Burak Kutbay'ın Kişisel Blog'u |

Type and hit Enter to search

  • Etkinliklerim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • RabbitMQ
  • Hibernate
  • JSP
  • Java 21
  • Java 8
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale
Spring Cloud

Spring Cloud Config Server Nedir? Uygulama Örneği

Paylaş

Spring Cloud Dersleri‘ne devam ediyorum.

İçindekiler

Toggle
  • Spring Cloud Config Server Uygulama
  • Spring Cloud Config Client Uygulama

Bu yazıda Spring Cloud Config Server oluşturarak mikroservislerimizin konfigurasyonlarını tek bir uygulama üzerinden yönetebilmek ve gerektiğinde değişikliklere anında cevap veren bir config server yapmayı açıklayacağım.

Spring Config Server sayesinde mikroservislerimizin operasyon katmanınlarını ayırarak tek bir nokta üzerinden yönetmeyi sağlamaktadır. Spring Config Server sayesinde her mikroservisimiz için ayrı ayrı konfigürasyon dosyaları ile de uğraşmak zorunda kalmıyoruz.

Yapılan değişiklikler üzerinden

Bir diagram üzerinden açıklamak gerekirse;

Spring Cloud Config Server
Spring Cloud Config Server

Cloud config server’ımız bir file ya da .git dosyası ya da farklı kaynaklar. (S3, HashiCorp vs.)üzeriden tutulan verileri tutar ve diğer uygulamalarımız config server’a istekte bulunarak bu bilgileri istek yapan servislerimize iletir.

Spring Cloud Config Server Uygulama

Spring Cloud Config Server uygulamamızı oluşturalım. Maven bağımlılığımız aşağıdaki gibi olacaktır.

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
Code language: HTML, XML (xml)

Bir rest controller yazalım bu yazacağımız controller üzerinde cevap olarak config file’dan okunan değeri cevap olarak döneceğiz ve bu döndüreceğimiz değer config değerinden okunduğu için anlık değer değiştiğinde bile restart etmemize gerek kalmadan güncel değeri okuyabileceğiz.

@RestController
@RequestMapping("/")
public class ServerController {

	@Value("${server.version}")
	int serverVersion;
	
	@GetMapping
	public String getVersion() {
		return "Server version: " + serverVersion; 		
	}
}
Code language: Java (java)

application.properties dosyamızda gerekli olan ayarlarımızı girelim.

server.port=8085
spring.application.name=config-server
spring.profiles.active=native
spring.cloud.config.server.native.search-locations=classpath:/config

application.properties dosyası üzerinde dosya sistemi üzerinde yer alan konfigürasyon dosyalarımız hangi yol üzerinde oluğunu belirtiyoruz ve o klasör altındaki bizim enviroment değerlerimizi okuyabilir ve istediğimiz değişikliği esnek bir biçimde değiştirebiliriz. Bu tanımlama içerisinde config klasöründe olduğunu belirtiyoruz. Bu klasör ise resources klasörünün altında bulunuyor.

Spring Cloud Config Server Config Folder
Spring Cloud Config Server Config Folder

Oluşturduğumuz bu dosyaların içerisine değer/değerlerimizin tanımlamalarını yapalım.

server.version=5

Bu değeri bizim istek yaptığımız herhangi bir uygulama içerisinden çağırdığımızda bu değeri okuyabileceğiz.

Spring Cloud Config Client Uygulama

Bu konfigürasyon dosyamızdan verileri okuyan uygulamamıza config client bağımlılığımızı eklememiz yeterli olmaktadır.

application.properties uygulamasına konfigürasyonların hangi nereden okunması gerektiği belirtiyoruz.

server.port=8086
spring.application.name=app-1
spring.profiles.active=dev
spring.cloud.config.uri=http://localhost:8085
spring.config.import=optional:configserver:http://localhost:8085Code language: JavaScript (javascript)

app-1 uygulamamızın konfigürasyon dosylarını config server url’sini tanımladık.

app-1 uygulamamızın localhost:8086 adresine istek gönderdiğimizde varsayılan bir değeri okumamız istediğimizde çıkan sonuç aşağıdaki gibi olacaktır.

Server version 5

Farklı tüm ortamlar için farklı değerler olduğunda dev, stg, prod gibi ortamlarda farklı değerler verebiliriz. Bu değişikleri native olarak derslendiği için anında değişiklikler restarta gerek kalmadan hot reload olarak geçerliliğe girer.

Sonraki Spring Cloud Dersleri’nde görüşmek üzere.


Önceki Ders: Axon Server Nedir?
Spring Cloud Dersleri
Sonraki Ders: Spirng Cloud Aws SQS Kullanımı

Tags:

Spring Cloud Dersspring cloud dersleriSpring Cloud Uygulama ÖrnekleriSpring Cloud Uygulamalarıspring config server

Paylaş

Diğer Yazılar

Axon Server Nedir Axon Framework Kurlumu
Previous

Axon Framework Nedir ve Kurulumu

Resmo Nedir Github Entegrasyonu Nasıl Yapılır
Next

Resmo ile Github’ı Monitör Et ve Kontrol Altına Al

Next
Resmo Nedir Github Entegrasyonu Nasıl Yapılır
19 Eylül 2022

Resmo ile Github’ı Monitör Et ve Kontrol Altına Al

Previews
13 Eylül 2022

Axon Framework Nedir ve Kurulumu

Axon Server Nedir Axon Framework Kurlumu

No Comment! Be the first one.

Bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgini Çekebilir

Spring Cloud Bus ile Runtime Konfigürasyon Yönetimi

Spring Cloud Bus ile Runtime Konfigürasyon Yönetimi

Spring Cloud Aws SQS Uygulama Örneği

Spring Boot Cloud AWS SQS Kullanımı

Axon Server Nedir Axon Framework Kurlumu

Axon Framework Nedir ve Kurulumu

Spring Cloud Dersleri Gateway Api Load Balancing Routing Uygulama Örneği

Spring Cloud Gateway & Routing & Load Balancing İşlemleri

Burak Kutbay'ın Kişisel Blog'u |

© 2008 - ∞, Her hakkı saklıdır.

Link

  • Hakkımda
  • İletişim
  • Arşiv

Kategori

Cloud
Node.js
Java 24
Android
Struts
Röportaj
Gradle
Amazon Web Services
Vue.js
Video
Redis
Spring Boot 3.0
Debezium
Mikroservis Mimarisi
Spring Native
Spring Cloud Stream
Etkinlikler
XCode
JPA
Objective C
iPhone Uygulama Geliştirme
PostgreSQL
Spring Security
MongoDB
Java 21
Spring Data
Apache Kafka
Yaptığım Projeler
Servlet
Git
Maven
Design Patterns
DevOps
Linux
Spring Jdbc Template
RabbitMQ
JDBC
PrimeFaces
Manset
Google
Spring
Spring MVC
Spring Cloud
OCA Java SE 8
Quarkus
Spring Core
Microsoft
Veritabanı
Java SE
Tanıyalım
Hibernate
Teknoloji
Okuduğum Kitaplar
Java Server Faces
Yazılım Mühendisliği
C Sharp
Spring Boot
Java
Günlüğüm
Java Server Page
Makale

Takip Et

Twitter Youtube Github
  • Etkinliklerim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • RabbitMQ
  • Hibernate
  • JSP
  • Java 21
  • Java 8
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale