Zuul网关搭建

2020-02-12  本文已影响0人  幻影翔

步骤

效果

localhost:8000

1、pom引入

<dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
        </dependency>
    </dependencies>

2、编写启动程序

@EnableZuulProxy
@SpringCloudApplication
public class ZuulGatewayApplicaiton {

    public static void main(String[] args) {
        SpringApplication.run(ZuulGatewayApplicaiton.class,args);
    }
}

3、编写application.yml

server:
  port: 9000
spring:
  application:
    name: ad-gateway
eureka:
  client:
    service-url:
      defaultZone: http://server1:8000/eureka/

4、编写日志过滤器供网关调用

@Component
@Slf4j
public class AccessLogFilter extends ZuulFilter {

    @Override
    public String filterType() {
        return FilterConstants.POST_TYPE;
    }

    @Override
    public int filterOrder() {
        return FilterConstants.SEND_RESPONSE_FILTER_ORDER-1; // 最后执行
    }

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

    @Override
    public Object run() throws ZuulException {
        RequestContext context = RequestContext.getCurrentContext();
        HttpServletRequest request = context.getRequest();
        Long startTime = (Long) context.get("startTime");
        String url = request.getRequestURI(); // 请求的路径
        long duration = System.currentTimeMillis() - startTime;
        log.info("url: "+url+", duration: "+ duration / 100+ "ms");
        return null;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读