Spring Cloud Gateway 搭建网关

  1. 新建一个module添加依赖:
xml 复制代码
<!--Spring Cloud Gateway依赖-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>

<!-- nacos客户端依赖包 -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
  1. application,yml中配置路由:
yaml 复制代码
server:
  port: 10010  #网关端口
spring:
  application:
    name: server  #服务名称
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848  #将网关注册到naocs中心
  cloud:
    gateway:
      routes:
        - id: service-route                # 路由ID
          uri: http://backend-service      # 后端服务地址
          predicates:
            - Path=/api/**                 # 请求路径匹配规则

3.编写启动类启用网关:

java 复制代码
@SpringBootApplication
@EnableDiscoveryClient
public class GatewayApplication {
    public static void main(String[] args) {
        SpringApplication.run(GatewayApplication.class, args);
    }
}

Spring Cloud Gateway是Spring Cloud中的一个组件,它作为微服务的统一入口,主要作用包括:

  1. 请求路由:所有进入Spring Cloud Gateway的请求都会被路由到对应的微服务。路由规则可以通过配置文件灵活地进行定制。
  2. 权限控制:网关作为微服务入口,需要校验用户是否有请求资格,如果没有则进行拦截。权限控制可以基于各种条件,例如IP地址、用户名、请求头信息等。
  3. 限流:当请求流量过高时,Spring Cloud Gateway会在内部进行限流,即按照下游微服务能够接受的速度来放行请求,避免服务压力过大。
  4. 负载均衡:当目标服务有多个时,Spring Cloud Gateway会进行负载均衡,以确保各个微服务负载均匀,提高整体性能。

Spring Cloud Gateway还支持多种编程范式,例如阻塞式编程和响应式编程。在Spring Cloud生态中,Zuul网关和Spring Cloud Gateway可以共存,前者更适用于阻塞式编程,而后者则是基于Spring5中提供的WebFlux,更适合于响应式编程。

相关推荐
金色天际线-16 分钟前
nginx + spring cloud + redis + mysql + ELFK 部署
redis·nginx·spring cloud
LB211219 分钟前
Redis 黑马skyout
java·数据库·redis
洛小豆24 分钟前
Swagger3学习与实践指南
spring boot·后端·spring cloud
豐儀麟阁贵26 分钟前
Java知识点储备
java·开发语言
hrrrrb32 分钟前
【Spring Security】Spring Security 密码编辑器
java·hive·spring
豐儀麟阁贵35 分钟前
2.3变量与常量
java·开发语言
兮动人2 小时前
Eureka注册中心通用写法和配置
java·云原生·eureka
爱编程的小白L4 小时前
基于springboot志愿服务管理系统设计与实现(附源码)
java·spring boot·后端
聪明的笨猪猪6 小时前
Java Redis “持久化”面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
聪明的笨猪猪6 小时前
Java Redis “核心基础”面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试