证明路径被截取并服务转发成功
master-service - 转发指定地址并传入参数 spring: #配置文件名称,用来标识不同环境的配置。由 spring.profiles.active 的值来决定使用哪组配置。 ##转发指定地址并传入参数 profiles: route_uri application: # 应用名称 name: gateway-master cloud: gateway: discovery: locator: # 是否和服务注册与发现组件结合,设置为 true 后可以直接使用应用名称调用服务 enabled: true # 路由(routes:路由,它由唯一标识(ID)、目标服务地址(uri)、一组断言(predicates)和一组过滤器组成(filters)。filters 不是必需参数。) routes: # 路由标识(id:标识,具有唯一性) 转发指定地址并传入参数 - id: route_uri # 目标服务地址(uri:地址,请求转发后的地址) uri: :9000 # 路由条件(predicates:断言,匹配 HTTP 请求内容) predicates: ## 匹配 GET 请求 - Method=GET # 过滤器(filters:过滤器,过滤规则) filters: ## 添加指定参数 - AddRequestParameter=name, zwc eureka: instance: # 使用 ip 代替实例名 prefer-ip-address: true # 实例的主机名 hostname: ${spring.cloud.client.ip-address} # 实例的 ID 规则 instance-id: ${spring.cloud.client.ip-address}:${spring.application.name}:${server.port} client: serviceUrl: # 注册中心地址 defaultZone: ${eureka.instance.hostname}:8761/eureka/ logging: level: # log 级别 org.springframework.cloud.gateway: debug
停止注册中心工程(registry-service)和网关工程(master-service)
把 master-service - application.yml 配置文件中最上面的 spring.profiles.active 的值更改为 route_uri
上面配置文件内容意思是访问的路径 :8000/name (网关地址/name)
会被转发到 :9000/name(uri/name),并传入 'name=zwc' 参数(注意为 Get 请求)
启动注册中心工程(registry-service),网关工程(master-service)和服务工程 A(a-service)
项目启动成功后访问::8000/name
输出内容:'My name is zwc. aaa'(通过网关转发 - 参数有值)
打开新页面访问::9000/name
输出内容:'My name is null. aaa'(直接访问 - 参数没有值)
证明转发指定地址并传入参数成功
master-service - 转发指定服务并传入参数 spring: #配置文件名称,用来标识不同环境的配置。由 spring.profiles.active 的值来决定使用哪组配置。 ##转发指定服务并传入参数 profiles: route_addRequestParameter application: # 应用名称 name: gateway-master cloud: gateway: discovery: locator: # 是否和服务注册与发现组件结合,设置为 true 后可以直接使用应用名称调用服务 enabled: true # 路由(routes:路由,它由唯一标识(ID)、目标服务地址(uri)、一组断言(predicates)和一组过滤器组成(filters)。filters 不是必需参数。) routes: # 路由标识(id:标识,具有唯一性) 转发指定服务并传入参数 - id: route_addRequestParameter # 目标服务地址(uri:地址,请求转发后的地址) uri: lb://gateway-service # 路由条件(predicates:断言,匹配 HTTP 请求内容) predicates: ## 匹配 GET 请求 - Method=GET # 过滤器(filters:过滤器,过滤规则) filters: ## 添加指定参数 - AddRequestParameter=age, three eureka: instance: # 使用 ip 代替实例名 prefer-ip-address: true # 实例的主机名 hostname: ${spring.cloud.client.ip-address} # 实例的 ID 规则 instance-id: ${spring.cloud.client.ip-address}:${spring.application.name}:${server.port} client: serviceUrl: # 注册中心地址 defaultZone: ${eureka.instance.hostname}:8761/eureka/ logging: level: # log 级别 org.springframework.cloud.gateway: debug
停止注册中心工程(registry-service),网关工程(master-service)和服务工程 A(a-service)
把 master-service - application.yml 配置文件中最上面的 spring.profiles.active 的值更改为 route_addRequestParameter
上面配置文件内容意思是访问的路径 :8000/age (网关地址/age)会被转发到 (uri/age),并传入 'age=three' 参数(注意为 Get 请求)