自定义负载均衡策略
public class MyLoadBalancer implements ReactorServiceInstanceLoadBalancer {
private Response<ServiceInstance> getInstanceResponse(List<ServiceInstance> instances,Request request) {
//......
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
//......
}
}
想要通过上面的代码获取ServletRequestAttributes,微服务间相互调用时一般也可以正常获取到,但是有一个微服务在程序启动后,通过ApplicationRunner开启了一个线程,每10S循环请求另一个微服务,就导致通过上面的代码获取ServletRequestAttributes有时候为null的情况。