当前位置:首页 > 服务端 > 网关介绍和作用,Spring Cloud Gateway介绍

网关介绍和作用,Spring Cloud Gateway介绍

2022年11月09日 13:57:48服务端8

网关是什么?

顾名思义,就是网络关口,把守网络访问的山海关,关内的人只能从山海关出去,关外的人只能从山海关进来。
A访问B,A访问C,变成A访问D,然后由D去访问B和C,那么D就是我们的网关。

本文仅对HTTP网络层面的API网关进行探讨,其他网关不在讨论范围。

网关能干什么?

一、是跨域问题的一种解决方案

如nginx的反向代理就是一个网关,可以解决不同模块单独部署之后,前端的访问路径、跨域问题。

server {
        listen       8080;
        server_name  localhost;

	location ~ /m2/ {           
	    proxy_pass http://localhost:8081;
	}
	location ~ /m2/ {           
	    proxy_pass http://localhost:8082;
	}
}

插个小问题:跨域问题是怎么产生的?
一般来说,后端项目的子模块被拆分部署了,前端要调用的接口,分布在不同的ip和端口号上,从而造成了跨域问题。

二、充当防火墙的重任
网关可以统一校验用户的权限,对于权限不够的不允许访问。

三、后端可以对外提供统一的访问路径,方便调用者调用。

四、提供抽象层,方便后端重构接口。
打个比方,网关类似于,一个java的List接口,调用者只需要定义:List list就行了,至于后端是new ArrayList还是new LinkedList对调用者没有影响。

Spring Cloud Gateway

介绍

Spring cloud gateway是spring官方基于Spring 5.0、Spring Boot2.0和Project Reactor等技术开发的网关,Spring Cloud Gateway旨在为微服务架构提供简单、有效和统一的API路由管理方式,Spring Cloud Gateway作为Spring Cloud生态系统中的网关,目标是替代Netflix Zuul,其不仅提供统一的路由方式,并且还基于Filer链的方式提供了网关基本的功能,例如:安全、监控/埋点、限流等

网关介绍和作用,Spring Cloud Gateway介绍 _ JavaClub全栈架构师技术笔记

导入依赖

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

    <!-- 服务注册 -->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>

修改配置(基于nacos)

application.properties

# 服务端口
server.port=80
# 服务名
spring.application.name=service-gateway

# 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=stu
#匹配该路由的访问路径,只有调用者路径里出现/stu/的才能进入该路由。
spring.cloud.gateway.routes[0].predicates= Path=/*/stu/**
#路由的真实目的路径
spring.cloud.gateway.routes[0].uri=lb://service-stu
#设置路由id
spring.cloud.gateway.routes[1].id=tea
#匹配该路由的访问路径,只有调用者路径里出现/stu/的才能进入该路由。
spring.cloud.gateway.routes[1].predicates= Path=/*/tea/**
#路由的真实目的路径
spring.cloud.gateway.routes[1].uri=lb://service-tea

启动类

@SpringBootApplication
public class ServerGatewayApplication {
     
public static void main(String[] args) {
     
      SpringApplication.run(ServerGatewayApplication.class, args);
   }
}

作者:思想永无止境
来源链接:https://blog.csdn.net/u012643122/article/details/125884346

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/68922.html

分享给朋友:

“网关介绍和作用,Spring Cloud Gateway介绍” 的相关文章

SpringBoot整合Dubbo与zookeeper纯注解版

SpringBoot整合Dubbo与zookeeper纯注解版

一、Dubbo和zk的作用 上回讲到,Dubbo作为一款优秀的RPC框架,封装了dubbo-provider(提供者)和dubbo-consumer(消费者),而provider和consumer之间需要通过注册中心来作为可发现的服务目录。而zookeeper(此处简称zk)提供了服务接口注...

Spring Boot 2.x :通过 spring

Spring Boot 2.x :通过 spring

摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 本文内容 HBase 简介和应用场景 spring-boot-starter-hbase 开源简介 集成 HB...

[CXF REST标准实战系列] 二、Spring4.0 整合 CXF3.0,实现测试接口

[CXF REST标准实战系列] 二、Spring4.0 整合 CXF3.0,实现测试接口

Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket Reprint it anywhere u want. 文章Points: 1、介绍RESTful架构风格 2、Sprin...

`org.springframework.beans.factory.UnsatisfiedDependencyException异常处理

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'moneyNotifyController': Unsatisfied dependency...

springboot启动总是启动不起来UnsatisfiedDependencyException异常

springboot启动总是启动不起来UnsatisfiedDependencyException异常

采用debug模式启动总是停留在 点击后: 鼠标放在ex上: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name...

SpringBoot允许跨域请求

在前后端分离的架构中,允许跨域请求是一个很重要的设置。SpringBoot项目中允许跨域请求比较简单,只需要我们定义好配置类即可。 在com.example.csdn.config包里面创建CorsConfig类,然后设置允许跨域请求。 pa...

SpringBoot学习(一)初识SpringBoot

SpringBoot学习(一)初识SpringBoot

SpringBoot学习(一)初识SpringBoot SpringBoot springboot是什么 什么是spring...

Spring源码解析三:IOC容器的依赖注入

Spring源码解析三:IOC容器的依赖注入

一、Bean对象创建的时机 依赖注入是在Bean对象创建的时候完成的,那么第一个问题来了,Bean对象什么时候创建? Bean对象的创建是在getBean方法被调用的时候发生的,而在Spring中有两个场景会触发getBean方法被调用。 1、单例模式并且是非延迟加载...

Spring Boot 应用部署流程

Spring Boot 应用部署流程

在本机操作,执行以下步骤启动项目 1、从Github上下载源码 git clone https://github.com/ChinaSilence/any-video.git 2、在数据库中建库,建表 在数据下执行 databas...

SpringBoot笔记:SpringBoot启动参数配置

SpringBoot笔记:SpringBoot启动参数配置

文章目录 目的 测试代码 配置文件配置 获取自定义参数 项目打包发布 修改启动配置 方式一:系...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。