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
?
總結
以上是生活随笔為你收集整理的github的webhooks无法刷新config服务端的bus-refresh接口的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: docker安装RabbitMQ镜像
- 下一篇: Rancher入门