Zuul的基本应用,反向代理和负载均衡

来源:互联网 发布:java三次方 编辑:程序博客网 时间:2024/06/07 03:49

http://blog.csdn.net/fxq8866/article/details/77127330


package com.didispace.filter;import com.netflix.zuul.ZuulFilter;import com.netflix.zuul.context.RequestContext;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import javax.servlet.http.HttpServletRequest;public class AccessFilter extends ZuulFilter  {    private static Logger log = LoggerFactory.getLogger(AccessFilter.class);    @Override    public String filterType() {        return "pre";    }    @Override    public int filterOrder() {        return 0;    }    @Override    public boolean shouldFilter() {        return true;    }    @Override    public Object run() {        RequestContext ctx = RequestContext.getCurrentContext();        HttpServletRequest request = ctx.getRequest();        log.info(String.format("%s request to %s", request.getMethod(), request.getRequestURL().toString()));        Object accessToken = request.getParameter("accessToken");        if(accessToken == null) {            log.warn("access token is empty");            ctx.setSendZuulResponse(false);            ctx.setResponseStatusCode(401);            return null;        }        log.info("access token ok");        return null;    }}
spring.application.name=api-gatewayserver.port=5555# routes to serviceIdzuul.routes.api-a.path=/api-a/**zuul.routes.api-a.serviceId=service-A#below two lines is for ribbon loadblanceribbon.eureka.enabled=falseservice-A.ribbon.listOfServers:http://localhost:2222/,http://localhost:2223/zuul.routes.api-b.path=/api-b/**zuul.routes.api-b.serviceId=service-B# routes to urlzuul.routes.api-a-url.path=/api-a-url/**zuul.routes.api-a-url.url=http://localhost:2222/eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/