• Spring Cloud Gateway 搭建网关


    1. 新建一个module添加依赖:
    
    <dependency>
        <groupId>org.springframework.cloudgroupId>
        <artifactId>spring-cloud-starter-gatewayartifactId>
    dependency>
    
    
    <dependency>
        <groupId>com.alibaba.cloudgroupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
    dependency>
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    1. application,yml中配置路由:
    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/**                 # 请求路径匹配规则
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

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

    @SpringBootApplication
    @EnableDiscoveryClient
    public class GatewayApplication {
        public static void main(String[] args) {
            SpringApplication.run(GatewayApplication.class, args);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    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,更适合于响应式编程。

  • 相关阅读:
    内存访问与栈
    Vue3+Vite搭建项目
    JS正则表达式
    Go 接口
    如何下载并编译UE4源码
    Rust 安装与版本更新
    TCP连接概念及c++编程 (整理)
    exesql=“UPDATE test set date=‘%s‘“ % date 是啥意思
    从离线到实时对客,湖仓一体释放全量数据价值
    springboot java高校在线办公自动化系统Vue
  • 原文地址:https://blog.csdn.net/drhnb/article/details/133802490