企业网站定制开发的路由配置非常灵活,简单,企业网站定制开发有以下几种方式
企业网站定制开发最近在集成springcloud的项目,企业网站定制开发代码和文档会定期更新,
zuul的yml如果不配置路由,那么访问zuul网关的默认方式:http://zuulHostIp:port/要访问的微服务名称/服务中的url。其他路由规则如下:
1、自定义指定微服务的访问路径
自定义指定微服务的访问路径;配置zuul.routes.指定的微服务的serviceId = 指定的路径即可,如下:
# 配置路由规则 (方式1:自定义指定微服务的访问路径;配置zuul.routes.指定的微服务的serviceId = 指定的路径即可,如下)zuul: routes: consumer-server: /consumer/** #消费者的服务名及路径 provider-server: /provider/** #提供者的服务名及路径
- 1
- 2
- 3
- 4
- 5
访问:
192.168.0.102:8040/consumer/consumer/getServiceName
- 1
解释说明:consumer 是zuul里面映射的前缀,/consumer/getServiceName 是我的代码里面的路径
2、忽略指定的微服务
忽略服务非常简单,可以使用zuul.ignored-services配置需要忽略的服务,多个服务用逗号隔开
zuul: ignored-services: consumer-server,provider-server
- 1
- 2
3、忽略所有的微服务,只路由指定的微服务
很多场景下,可能只想要让zuul代理指定的微服务,此时可以将zuul.ignored-services 设为 ’ * ’
zuul: ignored-services: '*' routes: consumer-server: /consumer/**
- 1
- 2
- 3
- 4
4、同时指定微服务的serviceId和对应的路径
zuul: routes: consumer-server-route: #该配置方式中,consumer-server-route只是给路由一个名字,可以任意取名 service-id: consumer-server path: /consumer/**
- 1
- 2
- 3
- 4
- 5
5、同时指定path和url
zuul: routes: consumer-server-route: #该配置方式中,consumer-server-route只是给路由一个名字,可以任意取名 url: http://localhost:8085/ #指定consumer服务的地址 path: /consumer/**
- 1
- 2
- 3
- 4
- 5
需要注意的是,使用这种方式配置的路由不会作为HystrixCommand执行,同时也不能使用来负载多个url。下面的配置可以解决这个问题(后续会说到这个问题)
6、同时指定path和url,并且不会破坏zuul的Hystrix,Ribbon的特性
zuul: routes: consumer-server-route: #该配置方式中,consumer-server-route只是给路由一个名字,可以任意取名 service-id: consumer-server #指定consumer服务的地址 path: /consumer/**ribbon: eureka: enabled: false #为Ribbon禁用Eurekaconsumer-server: ribbon: listOfServers: localhost:8000,localhost:8001
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
7、路由前缀
zuul: prefix: api strip-prefix: false routes: consumer-server: /consumer/** #消费者的服务名及路径
- 1
- 2
- 3
- 4
- 5
8、忽略某些路径
有时需要更细粒度的路由控制,例如,想让Zuul代理某个微服务,同时又想保护该微服务的某些敏感路径。此时,可使用ignored-Patterns,指定忽略的正则。例如:
zuul: ignoredPatterns: /**/admin/** #忽略所有包含/admin/的路径 routes: consumer-server: /consumer/** #消费者的服务名及路径
- 1
- 2
- 3
- 4
9、本地转发
zuul: routes: route-name: path: /path-a/** url: forward:/path-b
- 1
- 2
- 3
- 4
- 5
当访问zuul的/path-a/** 路径,将转发到zuul的/path-b/** 路径