网关项目配置

  1. #设置路由:路由id、路由到微服务的uri、断言
  2. routes:
  3. - id: order_route #路由ID,全局唯一,建议配合服务名
  4. # uri参数可以直接去指定ip端口,也可以指定负载均衡lb开头
  5. #uri: http://localhost:8020 #目标微服务的请求地址和端口
  6. uri: lb://mall-order #lb 整合负载均衡器ribbon,loadbalancer
  7. predicates:
  8. # #Path路径匹配
  9. - Path=/order/**
  10. - id: user_route
  11. uri: lb://mall-user #lb 整合负载均衡器ribbon,loadbalancer
  12. predicates:
  13. - Path=/user/**

说明:
rotes就是设置路由

  1. - id: order_route #路由ID,全局唯一,建议配合服务名
  2. # uri参数可以直接去指定ip端口,也可以指定负载均衡lb开头
  3. #uri: http://localhost:8020 #目标微服务的请求地址和端口
  4. uri: lb://mall-order #lb 整合负载均衡器ribbon,loadbalancer
  5. predicates:
  6. # #Path路径匹配
  7. - Path=/order/**

id:就是路由ID,全局唯一,
uri:就是路由到目标微服务地址和端口,可以配置成 http://localhost:8020 ,这样就会自动找对应的地址,
也可以配置服务名lb://mall-order的意思是负载均衡调用mall-order服务
predicates:的意思就是断言, - Path=/order/ 的意思是url匹配了/order/就会走uri配置的地址

代码地址

代码出自图灵学院,我在这个代码基础上改了改

https://gitee.com/zjj19941/ZJJ_Neaten5.10/tree/master/ZJJ_Gateway/demo02

测试

启动下面三个服务
MallOrderApplication
MallGatewayApplication
MallUserApplication

发起get请求: 访问下面两个地址 ,都能被正确的路由到指定服务的指定方法上,说明localhost:8888 是 gateway项目的ip端口

http://localhost:8888/order/findOrderByUserId/1
看到下面控制台打了日志,说明访问到了目标方法
image.png

http://localhost:8888/user/findOrderByUserId/1
看到下面控制台打了日志,说明访问到了目标方法
image.png