一、网关基本概念


Gateway9527搭建
1、API网关介绍
2、Spring Cloud Gateway
3、Spring Cloud Gateway核心概念
二、创建api-gateway模块(网关服务)
1、在创建api_gateway网关模块(springboot)
注意:很重要
所有服务,都需要在nacos中注册服务(包括网关)
2、在pom.xml引入依赖
注意版本号,不要映入web 会报错
<dependencies>
<!--服务注册nacos-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--gateway网关-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<!--谷歌gson-->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
</dependencies>
3、编写application.properties配置文件
网关服务端口
server.port=8222
1.application.properties
# 网关服务端口
server.port=8222
# 服务名
spring.application.name=service-gateway
# nacos服务地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
#使用服务发现路由
spring.cloud.gateway.discovery.locator.enabled=true
#定义规则相当于Nginx
# 0 是当前模块
#设置路由id 理论上随便写,建议用服务名
spring.cloud.gateway.routes[0].id=service-acl
#设置路由的uri lb://nacos注册服务名称
spring.cloud.gateway.routes[0].uri=lb://service-acl
#设置路由断言,匹配规则,代理servicerId为auth-service的/auth/路径
spring.cloud.gateway.routes[0].predicates= Path=/*/acl/**
#1 是 service-edu
#配置service-edu服务
spring.cloud.gateway.routes[1].id=service-edu
spring.cloud.gateway.routes[1].uri=lb://service-edu
spring.cloud.gateway.routes[1].predicates= Path=/teacher/**
#2
#3
#4
#5
#6
#.....
2.yml文件:


路由的配置方式 第二种方式在java代码 中配置


import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class GateWayConfig
{
@Bean
public RouteLocator customRouteLocator(RouteLocatorBuilder routeLocatorBuilder)
{
RouteLocatorBuilder.Builder routes = routeLocatorBuilder.routes();
/**
* routes:
* - id: path_route_atguigu
* uri: http://news.baidu.com/guonei
* predicates:
* - Path=/guonei # 路径匹配
**/
routes.route("path_route_atguigu",//id
r -> r.path("/guonei")//predicate断言
.uri("http://news.baidu.com/guonei"))//路由
.build();
return routes.build();
}
}
缺少注册服务名spring: application: name: shop-gateway 记得加上
server:
port: 8222
spring:
application:
cloud:
gateway:
discovery:
locator:
e

本文详细介绍Spring Cloud Gateway的搭建与配置,包括网关服务创建、依赖引入、路由规则设定及异常处理等关键步骤,助您快速掌握微服务网关的部署与使用。

1万+

被折叠的 条评论
为什么被折叠?



