ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

网关_zuul_Route三种过滤器使用方式

2021-10-05 01:01:16  阅读:178  来源: 互联网

标签:网关 zuul RequestContext url request Route sms currentContext


1、网关通过url到服务

  

 1 @Override
 2     public Object run() throws ZuulException {
 3         RequestContext currentContext = RequestContext.getCurrentContext();
 4         HttpServletRequest request = currentContext.getRequest();
 5         //获取访问地址
 6         String remoteAddr = request.getRequestURI();
 7 
 8         //和老地址做匹配
 9         if(remoteAddr.contains("/send/sms-test31")){
10             //服务具体路径
11             currentContext.set(FilterConstants.REQUEST_URI_KEY,"/send/sms-test3");
12             //服务实例
13             currentContext.set(FilterConstants.SERVICE_ID_KEY,"service-sms");
14         }
15 
16 
17         return null;
18     }

 

2、网关访问具体url服务

访问指定url跳转具体的后端服务

@Override
    public Object run() throws ZuulException {
        RequestContext currentContext = RequestContext.getCurrentContext();
        HttpServletRequest request = currentContext.getRequest();
        //获取访问地址
        String remoteAddr = request.getRequestURI();
        //和老地址做匹配
        if(remoteAddr.contains("/zuul-test")){
            currentContext.set(FilterConstants.SERVICE_ID_KEY,"service-sms");
            try{
                currentContext.setRouteHost(new URI("http://localhost:8003/send/sms-test3").toURL());
            }catch (Exception e){

            }
        }
        return null;
    }

  

3、网关的自我转发

yml:

 

zuul:
  routes:
    aaa:
      path: /forward1/**
      url:  forward:/myyml

 

java:

访问:http://localhost:9100/forward1,完成自我转发

@RequestMapping(value = "/myyml")
    public String test(){
        return "myyml";
    }

 

标签:网关,zuul,RequestContext,url,request,Route,sms,currentContext
来源: https://www.cnblogs.com/fch2w/p/15367751.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有