В настоящее время я использую Zuul и Ribbon в качестве обратного прокси-сервера и балансировщика нагрузки соответственно.Я также использую Eureka в качестве службы поиска.У меня есть несколько экземпляров службы в Eureka, и я хочу знать имя хоста сервера, выбранного Ribbon.
Это моя текущая конфигурация:
GatewayApplication.java
:
@EnableZuulProxy
@EnableDiscoveryClient
@SpringBootApplication
public class GatewayApplication {
static RequestQueue q = new RequestQueue();
public static void main(String[] args) {
q.start();
SpringApplication.run(GatewayApplication.class, args);
}
@Bean
public LogIncomingRequest logIncomingRequest() {
return new LogIncomingRequest(q);
}
@Bean
public LogLeavingRequest logLeavingRequest() {
return new LogLeavingRequest(q);
}
}
application.yml
:
server:
port: 4000
spring:
application:
name: zuul-gateway
zuul:
sensitive-headers:
eureka:
client:
serviceUrl:
defaultZone: http://${EUREKA:10.0.2.15:8761}/eureka/
register-with-eureka: true
fetch-registry: true
instance:
prefer-ip-address: true
hystrix:
command:
default:
execution:
isolation:
thread:
timeoutInMilliseconds: 60000
У меня также есть пред ипост-фильтр.Как я могу получить информацию о сервере, который был выбран на ленте?
Я нашел этот код, но понятия не имею, где его использовать и как получить доступ к информации.
@Component
public class RibbonInterceptor extends ZoneAvoidanceRule {
@Override
public Server choose(Object key) {
Server choose = super.choose(key);
System.out.println(choose);
return choose;
}
Есть ли другие решения?
Заранее спасибо!