记一次SpringCloudGateway使用Skywalking异常 -- 记录处理结果

343 阅读1分钟

提示关键字:
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会有报错日志