天天看点

spring cloud - /bus/refresh 405

之前项目升级sprint-cloud,导致原本工作正常的刷新配置不work了。

下面是我的解决的办法:

/bus/refresh

management.endpoints.web.exposure.include=refresh,health,info,bus-refresh
management.endpoints.bus-refresh.enabled=true
           

加完这两个properties之后,可以通过postman测试,http://host:port/actuator/bus-refresh 是可以刷新config-server

还有一种,则是在通过代码发起http请求刷新config-server中心

一开始,我直接使用rest template

restTemplate.exchange(BUS_CONFIG_URL, HttpMethod.POST, null, Void.class);
           

尝试运行代码,后台还是会报405 , method not allow

然后经过我的研究发现,你必须要为请求设置content-type application/json

所以,我把我的代码改成了

MultiValueMap<String, Object> parts = new LinkedMultiValueMap<>();
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);

        HttpEntity httpEntity = new HttpEntity(parts);
        restTemplate.exchange(BUS_CONFIG_URL,
                HttpMethod.POST, httpEntity, Void.class);
           

请求并刷新config成功

最新测试结果!!!!

我发现这么做会导致偶尔刷新成功,偶尔405

然后我找到了另外一个解决方案

在config-server的pom里面增加monitor依赖, amqp我已经有了

<dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-config-monitor</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-bus-amqp</artifactId>
    </dependency>
           

接着使用postman测试,刷新成功!

spring cloud - /bus/refresh 405

芋道 Spring Cloud 配置中心 Spring Cloud Config 入门 参考地址