github的webhooks无法刷新config服务端的bus-refresh接口

使用SpringCloud Bus动态刷新配置需要访问 config服务端的接口/actuator/bus-refresh(以post方法),例如我config服务端启动在本机的8083端口:http://localhost:8083/actuator/bus-refresh

但是每次修改文件都要自己手动去访问链接有点麻烦,所以可以使用GitHub上的webhooks,其作用就是每次重新提交配置时会以POST方法去访问一个链接,(码云上也有这个东西),但是GitHub上配置了之后总是访问失败,报如下错误:

2019-03-21 19:28:06.681 TRACE 5624 --- [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet        : POST "/actuator/bus-refresh", parameters={}, headers={masked} in DispatcherServlet 'dispatcherServlet'
2019-03-21 19:28:06.682 TRACE 5624 --- [nio-8080-exec-2] s.b.a.e.w.s.WebMvcEndpointHandlerMapping : Mapped to Actuator web endpoint 'bus-refresh'
2019-03-21 19:28:06.871 DEBUG 5624 --- [nio-8080-exec-2] .w.s.m.m.a.ServletInvocableHandlerMethod : Could not resolve parameter [1] in public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map): JSON parse error: Cannot deserialize instance of `java.lang.String` out of START_ARRAY token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.lang.String` out of START_ARRAY token
 at [Source: (PushbackInputStream); line: 1, column: 295] (through reference chain: java.util.LinkedHashMap["commits"])
 

因为config server 将/actuator/bus-refresh做了、monitor封装转换,觉得一直出错的原因还是在于版本问题吧!

spring boot spring cloud 版本如下

github的webhooks无法刷新config服务端的bus-refresh接口_第1张图片

之后自己就写了方法来进行请求转发,过滤一次webhooks的请求:


例如:config服务端的刷新接口为:http://localhost:8083/actuator/bus-refresh,我使用natapp,将 http://3tzx5e.natappfree.cc 映射到127.0.0.1:8083。

github的webhooks无法刷新config服务端的bus-refresh接口_第2张图片

webhooks访问cofig server的refresh接口,接口做一次POST请求 ,请求到config server的对外暴露的接口/actuator/bus-refresh。使得config server 重新从远端github拉去最新配置,通过spring cloud bus 结合Rabbitmq消息队列 将最新的配置递交给config client端。从而实现配置的自动更新而无需重启应用。

最后测试成功,配置自动更新获取。

参考链接:

https://ask.csdn.net/questions/684123

https://blog.csdn.net/qq_40808344/article/details/88723588

 

你可能感兴趣的:(SpringCloud微服务)