https://preparedata.blog.csdn.net/article/details/120062997
以eureka为注册中心,且正常运行, eureka的配置可参考:https://preparedata.blog.csdn.net/article/details/120063331
需要创建三个服务cloud,可参考:https://preparedata.blog.csdn.net/article/details/120082979
1.gateway网关服务 端口:20000
2.order订单服务 端口:11004
3.pay支付服务 端口:11005
gateway网关服务,同order、pay两服务一样,都应该首先注册到eureka中
order、pay服务各自配置服务context-path
server:
servlet:
context-path: /shopping-order
server:
servlet:
context-path: /shopping-pay
各个业务服务context-path只要唯一不重复即可
初始化gateway网关服务时,就是一个普通的cloud服务, 无过多配置
#声名服务端口号
server:
port: 20000
#设置服务名称
spring:
application: # 应用名字,eureka 会根据它作为服务id
name: gateway
eureka:
# instance内容非必填项,可删除,
# 若删除后。注册到Eureka,则显示 Windwos-10HLZJF:shopping-goods:11003(电脑主机名:服务名:端口),多人运行同一个服务,不利于服务归属开发人员
instance:
instance-id: 192.168.88.63(程序员A)
client:
#是否在注册中心注册自己
register-with-eureka: true
#是否从 eureka 获取注册信息
fetch-registry: true
#配置注册中心的url (注意:地址最后面的 /eureka/ 这个是固定值)服务注册也就依赖这个url,后续我们会用到
service-url:
defaultZone: http://localhost:11001/eureka
以上是基本配置
implementation 'org.springframework.cloud:spring-cloud-starter-gateway:2.0.2.RELEASE'
#设置服务名称
spring:
application: # 应用名字,eureka 会根据它作为服务id
name: gateway
cloud:
gateway:
routes:
#路由的ID 唯一即可
- id: shopping-order
#路由的地址
uri: http://localhost:11004
# 可以指定ip端口路由, 也可以通过名称路由,方便服务多副本配置
#uri: lb://shopping-order
predicates:
- Path=/shopping-order/**
#路由的ID 唯一即可
- id: shopping-pay
#路由的地址
#uri: http://localhost:11005
# 可以指定ip端口路由, 也可以通过名称路由,方便服务多副本配置
uri: lb://shopping-pay
predicates:
- Path=/shopping-pay/**
spring.cloud.gateway.routes 配置order、pay两服务的转发路由
注意:routes配置的文本格式
请求order、pay两服务接口时,可以统一请求网关地址, 网关利用配置的shopping-order、shopping-pay将请求转发至对应服务上
利用网关地址请求
http://localhost:20000
/shopping-order/hello/sayHello
–> http://localhost:11004
/shopping-order/hello/sayHello
http://localhost:20000
/shopping-pay/test/get
–> http://localhost:11005
/shopping-pay/test/get
直接请求业务服务,当然也是可以
http://localhost:11004/shopping-order/hello/sayHello
http://localhost:11005/shopping-pay/test/get