springCloud配置Gateway服务网关

文章目录

  • 前言
  • 一、添加一个gateway网关模块
  • 二、在pom文件添加Gateway需要的依赖
  • 三、修改properties配置文件
  • 四、启动项目


前言

网关的角色是作为一个 API 架构,用来保护、增强和控制对于 API 服务的访问。API 网关是一个处于应用程序或服务(提供 REST API 接口服务)之前的系统,用来管理授权、访问控制和流量限制等,这样 REST API 接口服务就被 API 网关保护起来,对所有的调用者透明。因此,隐藏在 API 网关后面的业务系统就可以专注于创建和管理服务,而不用去处理这些策略性的基础设施

SpringCloud如何配置Gateway网关实现多服务间的调用呢?


提示:以下是本篇文章正文内容,下面案例可供参考

一、添加一个gateway网关模块

可以是一个maven项目模块

springCloud配置Gateway服务网关_第1张图片
在启动类上面添加注解,好让服务在注册中心注册和便于在注册中心获取其他服务
在这里插入图片描述

二、在pom文件添加Gateway需要的依赖

  <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
             <version>2.2.5.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
            <version>2.2.2.RELEASE</version>
        </dependency>

        <!--gson-->
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.2</version>
        </dependency>

        <!--服务调用-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
            <version>2.2.6.RELEASE</version>
        </dependency>

三、修改properties配置文件

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/guli?serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=123456

spring.profiles.active=dev

spring.application.name=gatewaydemo

mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8

        
#nacos服务地址(调用方)
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

#使用服务发现路由
spring.cloud.gateway.discovery.locator.enabled=true

#设置路由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/**

#配置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=/eduservice/**

#配置service-edu服务
spring.cloud.gateway.routes[2].id=service-msm
spring.cloud.gateway.routes[2].uri=lb://service-msm
spring.cloud.gateway.routes[2].predicates= Path=/edumsm/**

以配置service-edu服务为例:
spring.cloud.gateway.routes[1].id=service-edu 这个是注册路由id.等号后面的就是要使用网关调用的服务名称,是在nacos注册的服务名称
如下图:
springCloud配置Gateway服务网关_第2张图片
也就是配置文件中的模块名,如下图:
在这里插入图片描述
spring.cloud.gateway.routes[1].uri=lb://service-edu
这个是设置路由的uri固定写法 lb://服务名

spring.cloud.gateway.routes[1].predicates= Path=/eduservice/**
这个是设置路由断言,代理servicerId为eduservice的路径,也就是映射,表示当你调用这个服务的时候调用哪个路径下面的接口方法,如下图所示
springCloud配置Gateway服务网关_第3张图片

四、启动项目

分别启动网关模块和业务模块,可以在nacos界面里面看到配置的两个服务状态
springCloud配置Gateway服务网关_第4张图片
这样前端可以通过配置网关的那个端口进而根据Gateway去调用不同的服务

人之为学,不可自小,又不可自大。

你可能感兴趣的:(springCloud,spring,boot,spring,java,maven,tomcat)