我的编程空间,编程开发者的网络收藏夹
学习永远不晚

深入剖析网关gateway原理

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

深入剖析网关gateway原理

一 背景

微服务架构提供一种简单有效的统一的 API入口

负责服务请求路由、组合及协议转换,并且基于 Filter 链的方式提供了权限认证,监控、限流等功能。

  • 优点:

性能强劲:是第一代网关Zuul的1.6倍。

功能强大:内置了很多实用的功能,例如转发、监控、限流等设计优雅,容易扩展。

  • 缺点:

依赖Netty与WebFlux(Spring5.0),不是传统的Servlet编程模型(Spring MVC就是基于此模型实现),学习成本高。需要Spring Boot 2.0及以上的版本,才支持

二需要的依赖:


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

   添加配置文件及说明:

server:
port: 9000
spring:
application:
name: sca-gateway
cloud:
gateway:
routes: #配置网关路由规则
- id: route01  #路由id,自己指定一个唯一值即可
uri: http://localhost:8081/ #网关帮我们转发的url
predicates: ###断言(谓此):匹配请求规则
- Path=/nacos/provider/echo/**  #请求路径定义,此路径对应uri中的资源
filters: ##网关过滤器,用于对谓词中的内容进行判断分析以及处理
- StripPrefix=1 #转发之前去掉path中第一层路径,例如nacos
 

说明

路由(Route) 是 gateway 中最基本的组件之一

表示一个具体的路由信息载体。

主要定义了下面的几个信息:

id,路由标识符,区别于其他 Route。

uri,路由指向的目的地 uri,即客户端请求最终被转发到的微服务。

predicate,断言(谓词)的作用是进行条件判断,只有断言都返回真,才会执行路由。

filter,过滤器用于修改请求和响应信息。

什么是网关?

服务访问(流量)的一个入口,类似生活中的“海关“

为什么使用网关?

服务安全,统一服务入口管理,负载均衡,限流,鉴权

Spring Cloud Gateway 应用的初始构建过程(添加依赖,配置

Gateway 服务的启动底层是通过谁去实现的?

Netty网络编程框架-ServerSocket

Gateway 服务做请求转发时一定要在注册中心进行注册吗?

不一定,可以直接通过远端url进行服务访问

三  负载均衡

需要的porm文件是nacos的配置和包,是通过nacos配置中心,寻找实例。

网关层面是如何实现负载均衡的?

通过服务名去查找具体的服务实例

网关层面是如何通过服务名查找服务实例的?

Ribbon

你了解Ribbon中的哪些负载均衡算法?

轮询,权重,hash,……可通过IRule接口进行查看分析

网关进行请求转发的流程是怎样,有哪些关键对象?

XxxHandlerMapping,Handler,。。。

网关层面服务的映射方式怎样的?

谓词-path,…,服务名/服务实例

网关层如何记录服务的映射?

通过map,并要考虑读写锁的应用

下图是定义在网关层面定义全局过滤器

网关(Gateway)

诞生的背景?

第一:统一微服务访问的入口,

第二:对系统服务进行保护,

第三进行统一的认证,授权,限流

网关的选型?

Netifix Zuul,Spring Cloud Gateway,…

Spring Cloud Gateway的入门实现

添加依赖,路由配置,启动类

Spring Cloud Gateway中的负载均衡?

网关服务注册,服务的发现,基于uri:lb://服务id方式访问具体服务实例

Spring Cloud Gateway中的断言配置?

掌握常用几个就可,用时可以通过搜索引擎去查

Spring Cloud Gateway中的过滤器配置?

掌握过滤器中的两大类型-局部和全局

Spring Cloud Gateway中的限流设计?

Sentinel

Gateway在互联网架构中的位置?

nginx->gateway–>微服务–>微服务

Gateway底层负载均衡的实现?

Ribbon

Gateway应用过程中设计的主要概念?

路由id,路由uri,断言,过滤器

Gateway中你做过哪些断言配置?

after,header,path,cookie,…

Gateway中你用的过滤器有哪些?

添加前缀,去掉前缀,添加请求头,…,负载均衡,…

以上就是深入理解网关gateway的详细内容,更多关于网关gateway的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

深入剖析网关gateway原理

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

深入剖析Android消息机制原理

在Android中,线程内部或者线程之间进行信息交互时经常会使用消息,这些基础的东西如果我们熟悉其内部的原理,将会使我们容易、更好地架构系统,避免一些低级的错误。在学习Android中消息机制之前,我们先了解与消息有关的几个类:1.Mess
2022-06-06

《深入浅出深度学习:原理剖析与pytho

8.1 生物神经元(BN)结构1、人脑中有100亿-1000亿个神经元,每个神经元大约会和其他1万个神经元相连2、细胞体:神经元的主体,细胞体=细胞核+细胞质+细胞膜,存在膜电位3、树突:从细胞体向外延伸出许多突起的神经纤维。输入端4、轴突
2023-01-31

深入剖析OpenMP锁的原理与实现

在本篇文章当中主要给大家介绍一下 OpenMP 当中经常使用到的锁并且仔细分析它其中的内部原理!文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以参考一下
2023-01-28

问哭自己lsm 索引原理深入剖析

这篇文章主要为大家介绍了问哭自己lsm 索引原理及剖析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-05-14

问哭自己lsm 索引原理深入剖析

目录lsm简析提问开始lsm 小结看看与b+tree的区别lsm简析lsm 更像是一种设计索引的思想。它把数据分为两个部分,一部分放在内存里,一部分是存放在磁盘上,内存里面的数据检索方式可以利用红黑树,跳表这种时间复杂度低的数据结构进行检索
2023-04-06

JavaScript 原型模式的深入剖析:从原理到应用

JavaScript原型模式是一种强大的机制,允许您创建和扩展对象。通过理解原型链的概念和原型方法的使用,您可以编写出更强大、更灵活的代码。
JavaScript 原型模式的深入剖析:从原理到应用
2024-02-06

深度剖析Spring Cloud底层原理

毫无疑问,Spring Cloud 是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对 Spring Cloud 功能使用的层面,其底层的很多原理,很多人可能并不知晓。实际上,Spring Cloud 是一
2023-06-05

Gateway网关工作原理是什么

小编给大家分享一下Gateway网关工作原理是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. 什么是 API 网关(API Gateway)分布式服务架构
2023-06-21

深入剖析从输入URL到页面显示过程原理

这篇文章主要为大家深入剖析了从输入URL到页面显示这中间发生的过程原理,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-05-15

深入剖析Go语言的垃圾回收器管理原理

Go语言的垃圾回收器(Garbage Collector,简称GC)是一种自动内存管理机制,用于回收不再使用的内存对象,以减轻程序员的负担。Go语言的垃圾回收器采用的是基于三色标记算法的并发标记清除(Concurrent Mark and
2023-10-08

深入剖析Go语言的关键特性

go 语言是一款开源编程语言,具备以下关键特性:并发性:支持轻量级线程 (goroutine) 和通信通道,实现高效并发编程。异常处理:使用内置错误系统处理异常,支持自定义错误类型。接口:定义方法集合,为代码提供松散耦合和多态性。结构体:组
深入剖析Go语言的关键特性
2024-04-08

深入剖析numpy转置函数的原理及其应用

深入探究NumPy转置函数的原理和应用NumPy(Numerical Python)是Python中用于科学计算的一个重要库。它提供了高效的多维数组对象和一组用于操作数组的函数。在进行科学计算和数据分析时,我们经常需要对数组进行转置操作,
深入剖析numpy转置函数的原理及其应用
2024-01-26

深入剖析vite到底是快还是慢原理详解

这篇文章主要为大家介绍了深入剖析vite到底是快还是慢原理详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-11-13

深入剖析 C++ 递归:原理、实现和优化技术

递归是一种通过函数自调解决问题的编程技术,在 c++++ 中可通过调用自身并传递不同参数实现。优化技术包括尾递归优化、备忘录和剪枝。递归代码通常比迭代代码效率低,但当提供更简洁清晰的解决方案时,仍可能是更好的选择。深入剖析 C++ 递归:原
深入剖析 C++ 递归:原理、实现和优化技术
2024-05-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录