Включение / шина / обновление конечной точки в Spring Cloud Config Client

Мой клиент Spring Cloud Config зависит от spring.cloud.starter.bus.amqp, но это все еще не позволяет /bus/refresh endpoint

build.gradle    
compile("org.springframework.cloud:spring-cloud-starter-stream-rabbit:1.1.3.RELEASE")    
compile("org.springframework.cloud:spring-cloud-starter-bus-amqp:1.2.2.RELEASE")

У меня есть эти зависимости в моем клиентском приложении конфигурации, но все еще не включающий /bus/refresh, /bus/env,

Пожалуйста, дайте мне знать, что мне не хватает в моем клиентском приложении.

Замечания:

spring.cloud.bus.refresh.enabled: true
spring.cloud.bus.env.enabled: true
endpoints.spring.cloud.bus.refresh.enabled: true
endpoints.spring.cloud.bus.env.enabled: true

Я попытался настроить эти показатели в application.yml или же application.properties как они используются BusAutoConfiguration, включить /bus/* конечные точки.

@ConditionalOnProperty(value = "endpoints.spring.cloud.bus.refresh.enabled", matchIfMissing = true)

В приложении Spring Cloud Config Server я отключил эти конечные точки, т. Е. Установил значение false

endpoints.spring.cloud.bus.refresh.enabled: false
endpoints.spring.cloud.bus.env.enabled: false

и заметил, что во время запуска Spring Boot /bus/* конечные точки не включены.

5 ответов

Решение

Вы связали URL клиента с /bus/refresh? Я считаю, что это сопоставлено с /refresh по умолчанию.

Вы также можете попробовать отправить запрос POST клиентскому приложению по адресу:

curl -X POST http://server:port/refresh

Я также считаю, что вам может не понадобиться spring-cloud-starter-stream-rabbit зависимость, просто spring-cloud-starter-bus-amqp,

Кстати, я опубликовал подробный пост с рабочей демонстрацией на тему: Обновляемая конфигурация с использованием Spring Cloud Config Server, Spring Cloud Bus, RabbitMQ и Git, которые могут помочь вам в качестве отправной точки.

Обновление этого вопроса с моими выводами на 2018/04/12

/ actator/bus-refresh - это путь с сервера конфигурации.

В вашем приложении. Свойства:

spring.cloud.bus.enabled=true
management.endpoints.web.exposure.include=bus-refresh

Пример: curl -X POST http://localhost:8080/actuator/bus-refresh

Дает сигнал всем зарегистрированным клиентам обновить их конфиги.

Большинство существующих статей, которые я нашел, не имеют этого, но мне удалось найти самую простую, основанную на методе проб и ошибок, и здесь есть лакомые кусочки решений.

Я столкнулся с той же проблемой. Мои наблюдения заключаются в следующем: я исправил это, зависимость от RabbitMQ/AMQP maven стала моей основной проблемой.

Мой модуль микросервиса и springCloudConfigServer использует следующее: 2.2.4.RELEASE - Hoxton.SR1

Мой pom.xml выглядит следующим образом:

        <!-- Use this! I replaced this maven dep. for following one -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bus-amqp</artifactId>
        </dependency>

        <!-- I was using this maven dep. initially which when replaced by the above solved my issue. Avoid using this for now.
        <dependency>
            <groupId>org.springframework.amqp</groupId>
            <artifactId>spring-rabbit</artifactId>
        </dependency>
        -->

Мой application.properties / bootstrap.properties выглядит следующим образом:

management.endpoints.web.exposure.include=bus-refresh

Этот URL работал для меня: http://localhost:8080/actuator/bus-refresh, а не: / bus / refresh OR / bus / env

1) У вас должны быть зависимости maven spring-boot-starter-actator и spring-cloud-starter-bus-amqp как в модуле микросервисов, так и в вашем модуле springCloudConfigServer.

2) В моем модуле микросервисов, когда я использовал spring-rabbit maven dep. & когда я пытался выполнить URL: /actator / bus-refresh, он всегда выходил с ошибкой 404! по какой-то причине.

3) Затем я обновил свой pom-файл микросервиса с spring-rabbit до spring-cloud-starter-bus-amqp и снова попробовал тот же URL. Это сработало! Мои выводы были простыми. Просто "пружинный кролик" по какой-то причине точно не поддерживал / активатор / обновление шины. (Я узнал это после проб и ошибок)

Надеюсь, это тебе поможет. Если это не так, вы можете сослаться на эту ссылку и это тоже.

После просмотра кода выяснилось, что spring.cloud.config.bus.enabled имеет значение false или переопределено.

Я использовал фреймворк Enterprise Framework в верхней части Spring Boot; который имел spring.cloud.config.bus.enabled как верно в bootstrap.yml и но это было переопределено файлом свойств сервера конфигурации, т. е. хранилище файлов свойств git имело значение false в качестве значения и для которого было дано предпочтение.

localhost:<port>/env

должен отображать все свойства из разных источников; как сервер конфигурации, application.yml как часть службы JAR. Из того, который получает предпочтение.

"configService:github uri": { list of properties }
"systemProperties": { list of properties }
"applicationConfig: [classpath:/application.properties]": { list of properties }

Ниже весны env Ресурс rest используется для обеспечения точного значения этого свойства.

localhost:<port>/env/spring.cloud.config.bus.enabled

У меня YAML, но я пишу вам представление .properties. после добавления опций ниже с пустымPOSTдля настройки порта сервера у меня работал http://ourserver:1234/actuator/refresh

      management.enpoints.web.exposure.include: info, health, refresh, bush-refresh
spring.cloud.config.sever.bus.enabled: true
Другие вопросы по тегам