网关本身也是微服务,也需要把自己注册到 Nacos 或从 Nacos 中拉取服务
一个服务要想启动,得需要main函数,所以弄一个application:
这些配置是让网关能够联系上 Nacos,实现网关服务的注册,以及服务发现
然后是路由配置:
server:
port: 10010
spring:
application:
name: gateway
cloud:
nacos:
server-addr: localhost:8848 # nacos地址
gateway:
routes:
- id: user-service # 路由标识,必须唯一
uri: lb://userservice # 路由的目标地址
predicates: # 路由断言,判断请求是否符合规则
- Path=/user/** # 路径断言,判断路径是否以 /user 开头,如果是,则符合规则,就会代理到目标地址中去
- id: order-service
uri: lb://orderservice
predicates:
- Path=/order/**
启动 Nacos、网关、userservice、orderservice,浏览器搜索 localhost:10010/order/101 或者 localhost:10010/user/1,就可以了
原理:
假设用户发起了一个请求:http://localhost:10010/user/1,因为网关的端口是 10010,所以请求一定会进入网关,而网关是无法处理业务的,所以网关只能基于路由规则进行判断,而 /user/1 符合 - Path=/user/** 的规则,所以网关把用户的请求代理到 userservice(uri: lb://userservice ),接下来网关会拿着 userservice 去 Nacos 注册中心里找对应的地址,再做负载均衡挑一个,假设挑到了 localhost:8082,请求就会发到 localhost:8082 去了。
标签:网关,步骤,Nacos,路由,user,userservice,Gateway,localhost From: https://www.cnblogs.com/gagaya2/p/17850304.html