gateway网关

发布时间:2024年01月03日

gateway网关

一、基本信息

1、作用:网关的主要作用是路由、转发、安全校验。

2、过程:前端发送请求,统一经过网关服务,网关通过配置文件路由,找到对应的服务,然后向Nacos拉取服务列表,做负载均衡选出具体实例,最后发送请求调用服务。有网关的情况下,前端访问后端的固定端口,就是网关服务的端口,那么服务器对外只开放网关服务的端口,保证了服务器的安全性;另外,网关服务本身也会注册到Nacos,因为需要和Nacos保持联系,获取Nacos的服务资源。

二、服务搭建

1、创建一个新的module,然后添加springboot启动类

2、添加依赖,不能添加spring-boot-start-web的依赖,会冲突,因为Spring Cloud Gateway本身是基于WebFlux构建的,而spring-boot-starter-web是基于Servlet容器的,两者不能同时存在,我的做法是把后者注释掉,具体依赖如下:

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
            <version>3.1.0</version>
        </dependency>
        <!--注册中心,服务发现和注册-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!--配置中心-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <!--开启Spring Cloud 应用程序启动时加载bootstrap配置文件-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
            <version>3.1.4</version>
        </dependency>
        <!--负载均衡-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
            <version>3.1.0</version>
        </dependency>

3、配置bootstrap.yml文件,主要是nacos的服务器地址

4、配置application.yml,配置端口、服务名、最重要的就是网关

spring:
  cloud:
    gateway:
      routes:
        - id: cart-service #一般就是服务名字
          uri: lb://cart-service #lb表示负载均衡,//后面也可以是服务名字
          predicates:
            - Path=/cart/**    #当前这个配置表通过路径来路由,cart就是controller上的路径

?实现之后就可以调用了,就只是把原来的请求地址的端口换成了网关的端口而已,到服务器上之后,在只开启网关服务端口的情况下,那么请求只能走网关了。

文章来源:https://blog.csdn.net/qq_42251944/article/details/135373183
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。