13 Ocak 2021 Çarşamba

SpringCloud Bus

Giriş
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
spring:
  rabbitmq:
    host: localhost
    port: 5672
    username: guest
    password: guest
  cloud:
    bus:
      enabled: true
      refresh:
        enabled: true
Server İçin
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