网关基本概念 | 学习笔记

本文涉及的产品
云原生 API 网关,700元额度,多规格可选
简介: 快速学习 网关基本概念

开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot)网关基本概念】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/667/detail/11520


网关基本概念


目录:

一、   什么是网关

二、   gateway 网关


一、什么是网关

API 网关出现的原因是微服务架构的出现,不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求,如果让客户端直接与各个微服务通信,会有以下的问题:
(1)
客户端会多次请求不同的微服务,增加了客户端的复杂性。

(2)存在跨域请求,在一定场景下处理相对复杂。

(3)认证复杂,每个服务都需要独立认证。

(4)难以重构,随着项目的迭代,可能需要重新划分微服务。

例如,可能将多个服务合并成一个或者将一个服务拆分成多个。如果客户端直接与微服务通信,那么重构将会很难实施。

(5) 某些微服务可能使用 了防火墙 /浏览器不友好的协议, 直接访问会有一定的困难。
以上这些问题可以借助 API 网关解决。API 网关是介于客户端和服务器端之间的中间层,所有的外部请求都会先经过API 网关这一层。

也就是说,API 的实现方面更多的考虑业务逻辑,而安全、性能、监控可以交由 API 网关来做,这样既提高业务灵活性又不缺安全性左边是客户端.

用图片表示如下:

image.png

左边是客户端,右边是服务端 tomcat,端口号为8001

此时需要通过客户端访问服务端,按照以前的操作,客户端不是直接访问8001,需要先访问一个 nginxnginx 访问的端口号为9001.过程就是,先通过客户端访问,再通过 nginx,根据请求地址把它转发到对应的服务中去,中间经过了 nginxnginx 就是起到了一个网关作用,发送请求,先到网关,再通过网关转发到服务中去。

网关就是在客户端和服务端中间一面墙,可以起到作用有很多:比如请求转发,负载均衡,权限控制等等。


二、gateway网关

1.基本特点

image.png

Spring cloud gateway 是 spring 官方基于 Spring 5.0Spring Boot2.0Project Reactor 等技术开发的网关,

Spring CloudCatemay 旨在为微服务架构提供简单、有效和统一的 API 路由管理方式,Spring Cloud Gateway 作为Spring Cloud 生态系统中的网关,目标是替代 Netflix Zul,其不仅提供统一的路由方式,并且还基于 Filer 链的方式提供了网关基本的功能,例如:安全监控/埋点、限流等。

2.流程

如图所示:

image.png

首先通过客户端访问,在访问过程中通过网关。

第一部分:Gateway HandlerMapping,在这个位置做匹配。

第二部分:Gateway WebHandler 这个步骤是处理匹配,在接下来的步骤中经过过滤器,做权限等操作会涉及到很多过滤器,即Fiter通过过滤器选择程序。

3.术语解释

(1)路由

路由是网关最基础的部分,路由信息有一个 ID、一个目的 URL、一组断言和一组 Filter 组成。如果断言路由为真,则说明请求的 URL 和配置匹配。

(2〉断言

Java8中的断言函数。Soring Cloud Cateway 中的断言函数输入类型是 Spring5.0框架中的 ServerWebExchangeSpringCloud Cateway 中的断言函数允许开发者去定义匹配来自于 http request 中的任何信息,比如请求头和参数等。

(3)过滤器

一个标准的 Spring webFilterSpring cloud gateway 中的 filter 分为两种类型的 Filter,分别是 Gateway Filter Global Filter。过滤器 Filter 将会对请求和响应进行修改处理。

相关文章
|
负载均衡 Nacos 数据安全/隐私保护
SpringCloud(Gateway 网关负载均衡) | 学习笔记
快速学习 SpringCloud(Gateway 网关负载均衡)
SpringCloud(Gateway 网关负载均衡) | 学习笔记
|
设计模式 负载均衡 Java
3. 7 Spring Cloud 网关 Zuul 集成 Nacos 注册中心| 学习笔记
快速学习 3. 7 Spring Cloud 网关 Zuul 集成 Nacos 注册中心。
|
6月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
270 0
|
6月前
|
Java 网络架构 微服务
SpringCloud GateWay网关-学习笔记
SpringCloud GateWay网关-学习笔记
79 0
|
监控 安全 Java
网关、Nacos 和 Sentinel|学习笔记(一)
快速学习网关、Nacos 和 Sentinel
网关、Nacos 和 Sentinel|学习笔记(一)
|
Kubernetes Cloud Native 测试技术
从概念、部署到优化,Kubernetes Ingress 网关的落地实践|学习笔记(一)
快速学习从概念、部署到优化,Kubernetes Ingress 网关的落地实践
从概念、部署到优化,Kubernetes Ingress  网关的落地实践|学习笔记(一)
|
运维 Kubernetes 负载均衡
微服务用户为什么要选择云原生网关?|学习笔记(一)
快速学习微服务用户为什么要选择云原生网关?
微服务用户为什么要选择云原生网关?|学习笔记(一)
|
Kubernetes 监控 Cloud Native
下一代网关——云原生网关商业化发布 | 学习笔记
快速学习 下一代网关——云原生网关商业化发布
429 0
下一代网关——云原生网关商业化发布 | 学习笔记
|
消息中间件 缓存 监控
网关、Nacos 和 Sentinel|学习笔记(三)
快速学习网关、Nacos 和 Sentinel
网关、Nacos 和 Sentinel|学习笔记(三)
|
JSON 前端开发 中间件
MyCat - 网关联合测试 | 学习笔记
快速学习 MyCat - 网关联合测试
MyCat - 网关联合测试 | 学习笔记
下一篇
无影云桌面