Gateway快速入门

1、创建一个api-gateway的工程并加入依赖

<!--加入gateway的依赖-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>

2、创建启动类

@SpringBootApplication
public class ApiGatewayApplication {
    public static void main(String[] args) {
        SpringApplication.run(ApiGatewayApplication.class,args);
    }
}

3、修改配置文件

cloud:

        gateway:

                routes:#l路由数组、路由  就是指当请求满足什么样的条件的时候转发到那个微服务上

                       - id: #当前路由发的标识,要求唯一

                        uri: #请求最终要被转发到的地址

                        order:#路由的优先级,数字越小代表路由的优先级越高

                        predicates: #断言 (条件判断)

                        filters:#过滤器

server:
  port: 7000
spring:
  application:
    name: api-gateway
  # 配置api
  cloud:
    gateway:
      routes:
        - id: product_route   # 路由的唯一标识,只要不重复都可以,如果不写默认会通过UUID产生,一般写成被路由的服务名称
          uri: http://localhost:8081/  # 被路由的地址
          order: 1                     #表示优先级  数字越小优先级越高
          predicates:                  #断言: 执行路由的判断条件
            - Path= /product_serv/**
          filters:                     # 过滤器: 可以在请求前或请求后作一些手脚
            - StripPrefix=1

现在在配置文件中写死了转发路径的地址, 前面我们已经分析过地址写死带来的问题, 接下来我们从注册中心获取此地址

1、加入nacos依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-alibaba-nacos-discovery</artifactId>
</dependency>

 2、在主启动类上加入服务发现的注解

@SpringBootApplication
@EnableDiscoveryClient
public class ApiGatewayApplication {
    public static void main(String[] args) {
        SpringApplication.run(ApiGatewayApplication.class,args);
    }
}

3、修改application.yml的配置文件

server:
  port: 7000
spring:
  application:
    name: api-gateway
  # 配置api
  cloud:
    gateway:
      routes:
        - id: product_route   # 路由的唯一标识,只要不重复都可以,如果不写默认会通过UUID产生,一般写成被路由的服务名称
          uri: lb://shop-product  # 被路由的地址
          order: 1                     #表示优先级  数字越小优先级越高
          predicates:                  #断言: 执行路由的判断条件
            - Path=/product_serv/**
          filters:                     # 过滤器: 可以在请求前或请求后作一些手脚
            - StripPrefix=1
    nacos:
      discovery:
        server-addr: localhost:8848

 简写版

第一步:去电关于路由的配置

server:
  port: 7000
spring:
  application:
    name: api-gateway
  # 配置api
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
    gateway:
      discovery:
        locator:
          enabled: true 

第二步、启动项目,并通过网管去访问微服务

这时候,就发现只要按照网关地址/微服务/接口的格式去访问,就可以得到成功响应

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值