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<java.lang.String, java.lang.String>): 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 版本如下

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


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

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

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值