springGateWay网关搭建

第1步:创建一个 api-gateway 的模块,导入相关依赖




springcloud-alibaba
com.itheima
1.0-SNAPSHOT

4.0.0
api-gateway



org.springframework.cloud
spring-cloud-starter-gateway



第2步: 创建主类

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

第3步: 添加配置文件

server:
port: 7000
spring:
application:
name: api-gateway
cloud:
gateway:
routes: # 路由数组[路由 就是指定当请求满足什么条件的时候转到哪个微服务]
- id: product_route # 当前路由的标识, 要求唯一
uri: http://localhost:8081 # 请求要转发到的地址
order: 1 # 路由的优先级,数字越小级别越高
predicates: # 断言(就是路由转发要满足的条件)
- Path=/product-serv/** # 当请求路径满足Path指定的规则时,才进行路由转发
filters: # 过滤器,请求在传递过程中可以通过过滤器对其进行一定的修改
- StripPrefix=1 # 转发之前去掉1层路径

第4步: 启动项目, 并通过网关去访问微服务

修改成从配置中心获取路由表
第1步:加入nacos依赖



com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery

第2步:在主类上添加注解

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

第3步:修改配置文件

server:
port: 7000
spring:
application:
name: api-gateway
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
gateway:
discovery:
locator:
enabled: true # 让gateway可以发现nacos中的微服务
routes:
- id: product_route
uri: lb://service-product # lb指的是从nacos中按照名称获取微服务,并遵循负载均
衡策略
predicates:
- Path=/product-serv/**
filters:
- StripPrefix=1

第4步:测试

你可能感兴趣的:(springGateWay网关搭建)