提示关键字:
java.lang.RuntimeException: Prepare for async repeatedly. Span is already in async mode.
结果:
是因为在gateway项目中使用mvc的方式实现了一个健康检查接口导致,使用webflux的方式实现即可,示例:
/**
* 健康检查接口
*
* @return 返回接口
*/
@Bean
public RouterFunction<ServerResponse> heath() {
return route(GET("/").or(HEAD("/")),
request -> ok().body(BodyInserters.fromValue(ReturnResult.success())));
}
另外可以引入apm-trace-ignore-plugin-9.3.0.jar插件,忽略健康检查接口!
参考:Support Custom Trace Ignoring | Apache SkyWalking
【SkyWalking】启用apm-trace-ignore-plugin追踪忽略插件-CSDN博客
关于apm-trace-ignore-plugin插件的补充:经过测试发现,只要引入了apm-spring-cloud-gateway-3.x-plugin插件,ignore插件的配置文件就会失效,只能通过命令行配置,但是没有配置文件启动时skywalking会有报错日志