Zuul 实现网关转发的五种方式小结

上图为一个微服务框架的简单示例,当有一个HTTP请求发送到服务器的时候,其实是先经过了Nginx的,再经过了网关,这里的网关就担任了拦截过滤的作用,既然拦截和过滤了,肯定就涉及到了请求的转发
转发我大致例了以下五种转发方式:
方式一:path+serviceId 方式
在spring_cloud的配置文件application.yml 文件中加入以下配置:
server:
port: 8888 #服务端口
spring:
application:
name: app-zuul-gateway #指定服务名
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:8100/eureka/ #注册到eureka中的地址
register-with-eureka: true
fetch-registry: true
instance:
prefer-ip-address: true #将自己的ip地址注册到Eureka服务中
ip-address: 127.0.0.1 #ip地址
zuul:
# 方式一:path+serviceId
routes: #定义服务转发规则
abcs: #abcs这个名字任意取的
path: /order/** #配置请求URL的请求规则
serviceid: app-order #eureka中服务的id
跳转示例 :
http://localhost:8888/order/order2/201810300001
http://localhost:8888/order就相当于指定了eureka中id为app-order的微服务,后面在接上他本身的参数,就可以正常使用了
方式二:指定服务id 方式
zuul:
routes: #定义服务转发规则
app-order: /order/**
跳转示例 :
http://localhost:8888/order/order2/201810300001
和方法一一样,http://localhost:8888/order就相当于指定了eureka中id为app-order的微服务,后面在接上他本身的参数,就可以正常使用了
方式三:同时配置path和url 方式
zuul:
routes: #定义服务转发规则
abcs:
path: /order/**
url: http://127.0.0.1:8091 #真正的微服务地址,path匹配的请求都转发到这里
跳转示例 :
http://localhost:8888/order/order2/201810300001
上面的和方法一样,http://localhost:8888/order就相当于指定了eureka中id为app-order的微服务,后面在接上他本身的参数,就可以正常使用了
方式四:路由前缀 方式
zuul:
prefix: /order2
strip-prefix: false
routes:
app-order: /order/**
跳转示例 :
http://localhost:8888/order2/app-order/201810300001
访问Zuul的/order2/app-order/201810300001路径,请求将会被转发到app-order 的order2/201810300001
方式五:路由前缀2 方式
zuul:
routes:
app-order:
path: /order2/**
strip-prefix: false
跳转示例 :
http://localhost:8888/order2/201810300001
访问Zuul的/order2/201810300001路径,请求将会被转发到app-order 的order2/201810300001
今天的分享就到此结束啦,以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Spring(AbstractRoutingDataSource)实现动态数据源切换示例
本篇文章主要介绍了详解Spring(AbstractRoutingDataSource)实现动态数据源切换,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。2017-02-02
java循环遍历无规则json的方式:gson、fastjson、orgjson
这篇文章主要介绍了java循环遍历无规则json的方式:gson、fastjson、orgjson,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-08-08
浅谈JDK8中的Duration Period和ChronoUnit
在JDK8中,引入了三个非常有用的时间相关的API:Duration,Period和ChronoUnit。他们都是用来对时间进行统计的,本文将会详细讲解一下这三个API的使用2021-06-06


最新评论