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

  • 相关阅读:
    测试小牛,全新出发!!
    vs2019配置opencv,解决报错“无法打开源opencv2/opencv.hpp”
    TCP三次握手和四次挥手(彻底弄明白)
    【ASP.NET Core】MVC 控制器的模型绑定(宏观篇)
    第九章 spring 事务和定时任务
    C. Make Good
    MySQL进阶之SQL优化、视图、存储过程
    86-分布式前端开发
    自学Python 50 正则表达式(二)使用 re模块
    Vue.js 2 —组件(Component)化编程
  • 原文地址:https://blog.csdn.net/drhnb/article/details/133802490