博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ribbon使用eureka的meta进行动态路由
阅读量:6451 次
发布时间:2019-06-23

本文共 1211 字,大约阅读时间需要 4 分钟。

使用eureka的元数据信息,再配上ribbon的路由功能,就可以在api-gateway实现很多功能,比如灰度测试、生产调试等等。下面介绍一下,怎么使用jmnarloch大神提供的ribbon-discovery-filter-spring-cloud-starter,利用简单的几行代码搞定这一切。

maven

io.jmnarloch
ribbon-discovery-filter-spring-cloud-starter
2.1.0

eureka元数据配置

eureka:  instance:    metadataMap:      tag: pre-prod

路由

@Componentpublic class DynamicRoutesFilter extends ZuulFilter {    private static final Logger LOGGER = LoggerFactory.getLogger(DynamicRoutesFilter.class);    @Override    public String filterType() {        return "pre";    }    @Override    public int filterOrder() {        return 0;    }    @Override    public boolean shouldFilter() {        return true;    }    @Override    public Object run() {        RequestContext requestContext = RequestContext.getCurrentContext();        HttpServletRequest request = requestContext.getRequest();        String tag = request.getHeader("tag");        if(tag != null){          RibbonFilterContextHolder.getCurrentContext().add("tag", tag);        }        return null;    }}

根据请求的tag,路由到标记有指定tag值的服务。注意,如果请求不指定tag,则代码需要判空一下,另外不指定tag的话,则默认所有同名的服务都会被路由到。

doc


想获取最新资讯,请关注微信公众号

图片描述

转载地址:http://sqgwo.baihongyu.com/

你可能感兴趣的文章
php基础 正则表达式,PHP基础 —— 正则表达式
查看>>
php mongo 防注入,php mongodb 注入_PHP教程
查看>>
oracle存储过程常见异常,oracle_存储过程exception异常处理大全跟实例经典最终.doc...
查看>>
oracle报1405,【案例】Oracle报错ORA-15054 asm diskgroup无法mount的解决办法
查看>>
php 5.4.24 win32,PHP 5.4.14 和 PHP 5.3.24 发布
查看>>
oracle top pid,Linux Top 命令解析 比较详细
查看>>
grub如何进入linux系统,Linux操作系统启动管理器-GRUB
查看>>
linux pbs 用户时间,【Linux】单计算机安装PBS系统(Torque)与运维
查看>>
linux系统可用内存减少,在Linux中检查可用内存的5种方法
查看>>
linux 脚本map,Linux Shell Map的用法详解
查看>>
linux mariadb忘记密码,Linux上mariadb重置密码
查看>>
如何在linux系统下配置共享文件夹,如何在windows和Linux系统之间共享文件夹.doc
查看>>
thinkpad装linux无线网卡驱动,ThinkPad E530 Fedora 20 下无线网卡驱动的安装
查看>>
linux磁盘管理是什么东西,Linux磁盘管理详解
查看>>
linux卸载软件出现依赖,关于ubuntu循环依赖软件的删除
查看>>
linux操作系统加固软件,系统安全:教你Linux操作系统的安全加固
查看>>
linux中yum源安装dhcp,24.Linux系统下动态网络源部署方法(dhcpd)
查看>>
linux屏幕复制显示出来的,linux – stdout到gnu屏幕复制缓冲区
查看>>
c语言规定数据长度,C语言中各种数据类型长度
查看>>
android l 新功能,Android L SDK -- 一些有趣的新功能
查看>>