2016-05-02 1 views
1

Привет, я настроил Zuul (spring-cloud-netflix) для работы с лентой.Zuul proxy с лентой + listOfServers и требования к регистрации

Мне удалось узнать, какой запрос отправляется в zuul, и какие запросы отправляются в соответствующую конечную точку в журналах, прежде чем добавлять к ней ленту.

В какой-то момент я добавил ленту & функция балансировки нагрузки.

Теперь я не вижу запроса исходящего запроса (от zuul к реальной конечной точке) в журналах. Все работает нормально. Ошибок нет. Но мне нужно знать/регистрировать входящую информациюReq-> outgoingReq внутри прокси-сервера Zuul. Я имею в виду, что мне нужна информация о пути маршрута (особенно с информацией ip).

Есть ли способ увидеть/получить эту информацию? Я хочу записать его в фильтр, если это возможно?

ответ

2

Я нашел способ сделать это примерно так. Надеюсь, это поможет кому-то еще.

import com.netflix.client.IResponse; 
import com.netflix.zuul.ZuulFilter; 
import com.netflix.zuul.context.RequestContext; 
import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 
import org.springframework.stereotype.Component; 

import java.net.URI; 

@Component 
public class PostFilter extends ZuulFilter { 

    Logger auditLogger = LoggerFactory.getLogger("auditLogger"); 

    @Override 
    public String filterType() { 
     return "post"; 
    } 

    @Override 
    public int filterOrder() { 
     return 1; 
    } 

    @Override 
    public boolean shouldFilter() { 
     return true; 
    } 

    @Override 
    public Object run() { 
     RequestContext ctx = RequestContext.getCurrentContext(); 
     URI ribbonResponseURI = ((IResponse) ctx.get("ribbonResponse")).getRequestedURI(); 
     AuditBean auditBean = (AuditBean) RequestContext.getCurrentContext().get("auditBean"); 
     auditBean.setIncomingURI(ctx.getRequest().getRequestURL().toString()); 
     auditBean.setOutgoingURI(ribbonResponseURI.toString()); 
     auditLogger.info("{}", auditBean.toJson()); 
     return null; 
    } 
} 
+0

Что это за класс AuditBean? Откуда мне импортировать? – codesalsa