首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zuul代理,带功能区+ listOfServers和日志记录要求

Zuul代理,带功能区+ listOfServers和日志记录要求
EN

Stack Overflow用户
提问于 2016-05-02 19:38:20
回答 1查看 1.2K关注 0票数 1

嗨,我已经配置了Zuul (spring-cloud-netflix)来使用ribbon。

在向zuul添加功能区之前,我能够在日志中看到哪个请求正在发送到zuul,以及哪些请求正在发送到相关的端点。

在某种程度上,我已经添加了ribbon和负载平衡功能。

现在我在日志中看不到传出请求(从zuul到实际端点)请求。事情运行得很好。没有错误。但是我需要知道/log incomingReq->outgoingReq在Zuul代理中的信息。我的意思是我需要路由路径信息(尤其是ip信息)。

有没有办法查看/获取此信息?如果可能的话,我想把它记录在一个过滤器里。

EN

回答 1

Stack Overflow用户

发布于 2016-05-02 23:59:33

我找到了一种方法来做这件事..希望这对其他人也有帮助。

代码语言:javascript
复制
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;
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36981525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档