在 Spring 云配置客户端中启用 /bus/refresh 端点
Enabling /bus/refresh endpoint in Spring Cloud Config Client
我的 Spring Cloud Config Client 依赖于 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 引导启动 /bus/*
端点未启用。
您是否将客户的 url 映射到 /bus/refresh
?我相信它默认映射到 /refresh
。
您也可以尝试向客户端应用程序发送 POST 请求:
curl -X POST http://server:port/refresh
我也相信你可能不需要 spring-cloud-starter-stream-rabbit
依赖,只需要 spring-cloud-starter-bus-amqp
.
顺便说一句,我在 Refreshable Configuration using Spring Cloud Config Server, Spring Cloud Bus, RabbitMQ and Git 发布了一个详细的 post 工作演示,这可能对您有所帮助。
查看代码后,发现 spring.cloud.config.bus.enabled
设置为 false 或被覆盖。
我在 Spring Boot 的顶部使用企业框架 jar;在 bootstrap.yml
中将 spring.cloud.config.bus.enabled
设置为 true,但这被配置服务器 属性 文件覆盖,即 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 }
以下 spring env
rest 资源被用来确保这个 属性.
的准确值
localhost:<port>/env/spring.cloud.config.bus.enabled
用我 2018 年 4 月 12 日的发现更新这个问题
/actuator/bus-refresh 是从配置服务器开始的方式。
在你的application.properties中:
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 或 /bus/env
1) 你需要有 spring-boot-starter-actuator 和 spring-cloud-starter-bus -amqp 微服务模块和 springCloudConfigServer 模块中的 maven 依赖项。
2) 在我的微服务模块中,当我使用spring-rabbit maven dep. & 当我尝试执行 URL: /actuator/bus-refresh 它总是失败并返回错误响应 404!出于某种原因。
3) 然后,我将我的微服务 pom 文件从 spring-rabbit 更新为 spring-cloud-starter -bus-amqp,并再次尝试相同的 URL。有效!我的推论很简单。
只是 'spring-rabbit' 肯定出于某种原因不支持 /actuator/bus-refresh。 (我是在反复试验之后才知道的)
希望对您有所帮助。
如果没有,你可以参考this link & this also.
我的 Spring Cloud Config Client 依赖于 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 引导启动 /bus/*
端点未启用。
您是否将客户的 url 映射到 /bus/refresh
?我相信它默认映射到 /refresh
。
您也可以尝试向客户端应用程序发送 POST 请求:
curl -X POST http://server:port/refresh
我也相信你可能不需要 spring-cloud-starter-stream-rabbit
依赖,只需要 spring-cloud-starter-bus-amqp
.
顺便说一句,我在 Refreshable Configuration using Spring Cloud Config Server, Spring Cloud Bus, RabbitMQ and Git 发布了一个详细的 post 工作演示,这可能对您有所帮助。
查看代码后,发现 spring.cloud.config.bus.enabled
设置为 false 或被覆盖。
我在 Spring Boot 的顶部使用企业框架 jar;在 bootstrap.yml
中将 spring.cloud.config.bus.enabled
设置为 true,但这被配置服务器 属性 文件覆盖,即 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 }
以下 spring env
rest 资源被用来确保这个 属性.
localhost:<port>/env/spring.cloud.config.bus.enabled
用我 2018 年 4 月 12 日的发现更新这个问题
/actuator/bus-refresh 是从配置服务器开始的方式。
在你的application.properties中:
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 或 /bus/env
1) 你需要有 spring-boot-starter-actuator 和 spring-cloud-starter-bus -amqp 微服务模块和 springCloudConfigServer 模块中的 maven 依赖项。
2) 在我的微服务模块中,当我使用spring-rabbit maven dep. & 当我尝试执行 URL: /actuator/bus-refresh 它总是失败并返回错误响应 404!出于某种原因。
3) 然后,我将我的微服务 pom 文件从 spring-rabbit 更新为 spring-cloud-starter -bus-amqp,并再次尝试相同的 URL。有效!我的推论很简单。 只是 'spring-rabbit' 肯定出于某种原因不支持 /actuator/bus-refresh。 (我是在反复试验之后才知道的)
希望对您有所帮助。 如果没有,你可以参考this link & this also.