spring cloud、gradle、父子项目、微服务框架搭建---cloud gateway(十)


总目录

https://preparedata.blog.csdn.net/article/details/120062997


文章目录

    • 总目录
    • 一、简介
    • 二、order、pay服务 配置context-path
    • 三、新建gateway网关服务
      • (1) 启动类添加 @SpringCloudApplication 即可
      • (2) application.yml 配置端口号 和 eureka 注册地址
    • 四、配置gateway网关服务
      • (1)引入依赖
      • (2)在application.yml中配置 转发地址
    • 五、测试


以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

order、pay服务各自配置服务context-path

server:
  servlet:
    context-path: /shopping-order
server:
  servlet:
    context-path: /shopping-pay

各个业务服务context-path只要唯一不重复即可


三、新建gateway网关服务

初始化gateway网关服务时,就是一个普通的cloud服务, 无过多配置

(1) 启动类添加 @SpringCloudApplication 即可

(2) application.yml 配置端口号 和 eureka 注册地址

#声名服务端口号
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

以上是基本配置


四、配置gateway网关服务

(1)引入依赖

implementation 'org.springframework.cloud:spring-cloud-starter-gateway:2.0.2.RELEASE'

(2)在application.yml中配置 转发地址

#设置服务名称
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




你可能感兴趣的:(spring,cloud,微服务,gateway)