Spring Cloud Bus - обновление определенного кластера клиента

У меня есть весенний облачный конфигурационный сервер, настроенный через весеннюю облачную шину через кафку. Я использую Edgware.RELEASE с загрузкой 1.5.9. Когда я отправляю запрос POST на конечную точку / шину / обновление с параметром destination = clientId: dev: ** в теле через POSTMAN на сервер конфигурации, все клиенты обновляют свои bean-компоненты, даже если их clientId не соответствует значению в поле назначения.

Вот дополнительные сведения о конфигурации:

сервер весенней облачной конфигурации

pom.xml

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-config-server</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-config-monitor</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-bus-kafka</artifactId>
    </dependency>

application.properties

server.port=8888
management.security.enabled=false
spring.cloud.bus.enabled=true
spring.kafka.bootstrap-servers=localhost:9092

У меня есть два клиента конфигурации с идентификатором - config-client1 и config-client2

После изменения свойства приложения в репозитории для config-client2 я отправляю POST-запрос в конечную точку / bus / refresh на сервере конфигурации с destination = config-client2: dev: ** в теле запроса. Я надеялся, что это обновит / повторно инициализирует beans только в приложении config-client2. Но я заметил, что beans в приложении config-client также обновляется / повторно инициализируется. Я также заметил, что приложение config-client получает событие обновления вместе с config-client2.

Я надеялся, что только приложение config-client2 получит событие, и его bean-компоненты - единственные, которые обновляются в результате этого.

Интересно, не хватает ли мне какой-либо настройки конфигурации для включения детального обновления на определенном уровне клиента.

Я просмотрел документ, размещенный по адресу - http://cloud.spring.io/spring-cloud-static/Edgware.RELEASE/single/spring-cloud.html, но результаты не соответствуют объяснениям.

Любая помощь с рабочим примером приветствуется.


person jarm    schedule 30.11.2017    source источник
comment
Пожалуйста, поместите несколько фрагментов кода для получения контекста   -  person Pankaj Gadge    schedule 01.12.2017


Ответы (1)


Вы можете использовать:

curl -X POST http://localhost:8001/actuator/bus-refresh/config-client2

Это также необходимо в вашем application.properties или .yml.

spring.cloud.config.uri = http://localhost:8001

spring.cloud.config.uri должен указывать на ваш Spring Config Server

person Leo Bufi Barrameda    schedule 22.11.2019