SpringCloud Config Server'da bir değişiklik yaptığımızda SpringCloud Config Client servislerinin bu değişikliği görmesi için
1. Ya servisi yeniden başlatmak gerekir
2. Ya da her servisin /refresh actuator adresine teker teker boş bir POST isteği göndermek gerekir.
Bu zahmetli olduğu için
1. RabbitMQ veya Kafka kuruyoruz
2. SpringCloud Bus projesini hem SpringCloud Config Client hem de SpringCloud Config Server servislerine ekliyoruz. Ayrıca her servisi RabbitMQ'yu veya Kafka'yı dinler hale getiriyoruz.
3. Daha sonra konfigürasyonda bir değişiklik yapıp, herhangi bir SpringCloud Config Client servisinin /bus-refresh actuator adresine boş bir POST isteği gönderiyoruz. Böylece tüm SpringCloud Config Client servisleri yeni konfigürasyonu okuyorlar.
Client İçin
Actuator muhtemelen zaten vardır ancak yoksa da şu satırı dahil ederiz
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-actuator</artifactId><version>2.2.6.RELEASE</version></dependency>
Daha sonra RabbitMQ için şu satırı dahil ederiz
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bus-amqp</artifactId><version>2.2.1.RELEASE</version></dependency>
Kafka için şu satırı dahil ederiz.
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bus-kafka</artifactId></dependency>
Örnek
RabbitMQ'ya bağlanmak ve bus-resfresh actuator adresini etkinleştirmek ve gerekir. Şöyle yaparız
Server İçinspring:rabbitmq:host: localhostport: 5672username: guestpassword: guestcloud:bus:enabled: truerefresh:enabled: true
Eğer server'ı Git'e otomatik bağlamak istersek pom dosyasına daha başka satırlar da eklemek gerekir.
Hiç yorum yok:
Yorum Gönder