您的位置:首页 > 编程语言 > Java开发

SpringCloud学习之zuul

2018-03-14 16:24 429 查看

一。为什么要有网关

  我们先看一个图,如果按照consumer and server(最初的调用方式),如下所示

package com.zhibo.springcloud.zuul;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import com.netflix.zuul.exception.ZuulException;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;

import javax.servlet.http.HttpServletRequest;

@Component
public class ValidateUserZuulFilter extends ZuulFilter {

/**
*
* @return
*/
@Override
public String filterType() {
return "pre";
}

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

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

@Override
public Object run() throws ZuulException {
RequestContext requestContext = RequestContext.getCurrentContext();
HttpServletRequest request = requestContext.getRequest();
String loginName = request.getParameter("loginName");
if (loginName == null || !"admin".equals(loginName)) {
requestContext.setSendZuulResponse(false);
requestContext.setResponseStatusCode(500);
Gson gson = new GsonBuilder().create();
requestContext.addZuulResponseHeader("content-type", "application/json;charset=utf-8");
requestContext.setResponseBody(gson.toJson(new ResponseEntity("没有登录名", HttpStatus.CONFLICT)));
return null;
}
return null;
}
}


View Code

四。zuul中超时的设置总结

  在这篇文章里已经很详细的说明了,请大家参考:周立的Springcloud超时总结
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: