springboot-cloud-5-zuul

zuul

application.properties
server.port= 8004
spring.application.name=zuul-master
###配置zuul路由
zuul.routes.service-a.path= /service-a/**
zuul.routes.service-a.serviceId = client
zuul.routes..service-b.path= /service-b/**
zuul.routes.service-b.serviceId  = hystrix-master

eureka.client.serviceUrl.defaultZone=http://pear1:9998/eureka/
application
@SpringCloudApplication   //开启消费 与 熔断 
@EnableZuulProxy    //zuul路由
public class ZuulMasterApplication {

    public static void main(String[] args) {
        SpringApplication.run(ZuulMasterApplication.class, args);
    }
}
路由过滤器
/**
 * Created by guoyao on 2017/8/17.
 */
@Component
public class ZuulRequestFilter extends ZuulFilter {

    private static final Logger log=LoggerFactory.getLogger(ZuulRequestFilter.class);

    //"pre" for pre-routing filtering,
    //  "route" for routing to an origin,
    // "post" for post-routing filters
    // "error" for error handling.
    //过滤器类型,决定过滤器运行时机
    @Override
    public String filterType() {
        return "pre";
    }

    //过滤器执行顺序
    @Override
    public int filterOrder() {
        return 0;
    }

    // a "true" return from this method means that the run() method should be invoked
    @Override
    public boolean shouldFilter() {
        return true;
    }


    //过滤器逻辑
    @Override
    public Object run() {
        log.info(" filter is running ");

        //  模仿token实现权限控制,实际可由会话获取
        RequestContext requestContext =  RequestContext.getCurrentContext();
        HttpServletRequest httpRequest=requestContext.getRequest();

        String token  = httpRequest.getParameter("accessToken");
        if (!"token".equals(token)) {
            log.warn(" you do not have the token ");
            requestContext.setSendZuulResponse(false);
            requestContext.setResponseStatusCode(401);
            return null;
        }
        log.info(" access successful");
        return null;
    }
}
网关配置
server.port= 8004

spring.application.name=zuul-master

###配置zuul路由
zuul.routes.service-a.path= /service-a/**
zuul.routes.service-a.serviceId = client
#zuul.routes..service-b.path= /service-b/**
#zuul.routes.service-b.serviceId  = hystrix-master

###配置本地跳转
##zuul.routes.hystrix-master.url= forward:/local

###关闭指定的过滤器
zuul.ZuulRequestFilter.pre.disable = true

#####指定url访问
####zuul.routes.service-a.url= http://localhost:8080/service-a

####简化配置为zuul.routes.<serviceId> = <path>
####默认自动整合eureka的所有服务
###zuul.routes.hystrix-master = /hystrix-master/**

####忽略指定  service
#####zuul.ignored-services= *
####忽略指定pattern
####zuul.ignored-patterns = /**/getClientDelay/**

####路由前缀
#zuul.prefix = /hello    ###有bug 能access successful  not route found
####移除所有服务代理前缀
#zuul.strip-prefix=false

eureka.client.serviceUrl.defaultZone=http://pear1:9998/eureka/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值