zuul网关 路由url与service-id配置
在zuul中有两种路由配置:1. 通过访问ip及端口号映射2.通过服务名称映射在上节代码基础上:首先我把服务提供者与服务消费者都开了集群:先配置第一种:更改网关application.ymlserver:port: 8090eureka:client:service-url:default-zone: http://localhost:8761/eurekaspring:application:n
·
在zuul中有两种路由配置:
1. 通过访问ip及端口号映射
2.通过服务名称映射
在上节代码基础上:
首先我把服务提供者与服务消费者都开了集群:
先配置第一种:
更改网关application.yml
server:
port: 8090
eureka:
client:
service-url:
default-zone: http://localhost:8761/eureka
spring:
application:
name: zuul-service
zuul:
routes:
feign:
path: /feign/**
url: http://localhost:8085/
通过path和url映射,访问path路径,直接访问到url对应的地址,这样显然不好,因为必须知道为服务的地址,并且集群的数量可能是动态扩展的,只实现了代理转发,不能实现负载均衡。其中/feign/*只代表一个路径,/feign/**代表下面多级路径
通过网关访问:
下面看第二种:
配置文件如下:
server:
port: 8090
eureka:
client:
service-url:
default-zone: http://localhost:8761/eureka
spring:
application:
name: zuul-service
zuul:
routes:
api-a:
path: /feign/**
service-id: eureka-feign
#zuul:
# routes:
# feign:
# path: /feign/**
# url: http://localhost:8085/
既然注册到eureka上了,那就应该获取注册的服务信息,通过服务id访问微服务,用service-id把服务名称写在这里,并且还可以实现路由、熔段功能。
然后通过网关访问:
还有第三种:zuul.routes.服务名称: 访问路径
zuul:
routes:
eureka-feign: /feign/**
若忽略某个微服务不走网关,则这样设置:
zuul:
#忽略某个微服务
ignored-services: eureka-feign
forward跳转到本地url:
zuul.routes.api-a.path=/user/**
zuul.routes.api-a.url=forward:/user
路由前缀:
zuul.prefix
默认不生效,要想生效,zuul.stripPrefix=false
把忽略前缀设置成false
zuul.routes.api-a.path=/user/**
zuul.routes.api-a.stripPrefix=false
若想根据顺序,进行路由规则配置,必须用yml文件,不能用properties文件
zuul:
routes:
users:
path: /user/**
others:
path: /**
更多推荐
已为社区贡献2条内容
所有评论(0)