spring cloud zuul的五种路由配置

背景:

        既然zuul作为微服务“路由器”,那么他的路由功能一定非常的丰富,所以这里就简单的列举几种路由配置:

第一种:单实例serviceId映射

思路:是一个/client/**到client-a服务的一个映射规则

zuul:
    routes:
        client-a:
            path: /client/**
            serviceId: client-a
#更简单的写法就是
zuul:
    routes:
        client-a: /client/**

第二种:单实例url映射

思路:除了路由到服务外,还能路由到物理地址,将上面的serviceId换成url即可

zuul:
    routes:
        client-a:
            path: /client/**
            url: http://localhost:9001  # client-a的地址

第三种:多实例路由

思路:在默认情况下,zuul会使用Eureka中集成的基本负载均衡功能,如果要使用ribbon的负载均衡功能,就需要指定一个serviceId,此操作需要禁止ribbon使用eureka,

zuul:
    routes:
        client-a:
            path: /client/**
            serviceId: client-a

#禁止ribbon使用Eureka
ribbon:
    eureka:
        enabled: false

ribbon-route:
    ribbon: 
        NIWSServerListClassName: com.netflix.loadbalancer.ConfigurationBasedServerList
        NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
        listOfServers: localhost:9001,localhost:9002

第四种:forward本地跳转

思路:如果我们希望在访问/client这个接口的时候跳转到这个方法上来处理,就需要使用zuul的本地跳转

zuul:
    routes:
        client-a:
            path: /client/**
            url: forward: /client

然后需要在网关中写好一个接口,接口代码如下

@RestController
public class TestZuulController{
    
    @GetMapping("/client")
    public Result add(Integer a,Intager b){
        System.out.println(a+b);
        return new Result(0000,"zuul测试成功");
    }
}

第五种:相同路径的加载配置

思路:有一种特殊的情况,为一个映射路径指定多个serviceId,那么他应该加载那个服务呢?

zuul:
    routes:
        client-a:
            path: /client/**
            serviceId: client-a
        client-b:
            path: /client/**
            serviceId: client-b

经过我的测试,他总是会路由到最后一个服务中,应该是yml解释器工作的时候,一个映射路径配置多个服务的话,他最后一个应该覆盖掉前面的服务,

最后说下路由通配符

/**   #匹配任意数量的路径与字符  /client/add, /client/add/add ,  /client/add/c

/*     #匹配任意数量的字符             /client/add    /client/as                /client/a

/?     #匹配单个字符                        /client/a        /client/b                /client/c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值