SpringCloud——服务网关——GateWay

1.GateWay是什么?

gateway也叫服务网关,SpringCloud GateWay使用的是Webflux中的reactor-netty响应式编程组件,底层使用了Netty通讯框架。

gateway的功能有反向代理、鉴权、流量控制、熔断、日志监控......

2.为什么不使用Zuul?

当时Zuul2.0迟迟不发布是一个原因,关键点是Zuul1.X是一个阻塞式的网关,不支持任何长连接,请求线程一直要被阻塞到工作线程一直结束,所以Zuul1.X的性能较差。而Zuul2.0又一直跳票,所以SpringCloud就子研了GateWay网关,功能强大,并且是异步非阻塞的。

3.GateWay的三大核心概念

  • Route(路由)

    GateWay配置的动态路由lb,也有负载均衡,可以去匹配提供服务的路由地址。

  • Predicate(断言)

    说白了,断言就是定义了一组匹配规则,让过来的请求根据断言匹配找到相对应的路由然后进行转发。

  • Filter(过滤)

我们都是使用自定义过滤器,可以进行一些全局日志记录,统一网关鉴权.........

4.请求到网关的运行流程

yml里面进行配置后,请求的基本流程就是先经过断言规则匹配,去找相对应的路由,如果对,则根据路由中的uri地址+接口进行路由转发,转发中还会通过过滤器(可以进行一些验证等等)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/134713.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EasyExcel 导出冻结指定行

导出的实体类 package org.jeecg.modules.eis.test;import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.style.*; import lombok.Getter; import lombok.Setter; import org.apache.poi.ss.usermodel.HorizontalAlignment;import…

Android Studio代码无法自动补全

Android Studio代码自动无法补全问题解决 在写layout布局文件时,代码不提示,不自动补全,可以采用如下方法: 点击File—>Project Structure,之后如图所示,找到左侧Modules,修改SDK版本号&…

R语言中的函数26:polyroot多项式求根函数

目录 介绍函数介绍参数含义 示例 介绍 R语言中的base::polyroot()可以用于对多项式求根,求根的多项式可以是复数域上的。 函数介绍 polyroot(z)该函数利用Jenkins-Traub算法对多项式 p ( x ) p(x) p(x)进行求根,其中 p ( x ) z 1 z 2 x ⋯ z n x…

Android笔记:(最全)判断网线是否插入方法

1.通过调用命令: cat /sys/class/net/eth0/carrier1.1在java代码中执行adb命令: private fun execCommand(command: String?): String {val runtime

【算法秘籍】藏在0和1之间的秘密,助你码出优秀人生

《算法秘籍》双十一 5折购书,就在京东商城 数据结构和算法是计算机科学的基石,是计算机的灵魂,要想成为计算机专业人员,学习和掌握算法是十分必要的。不懂数据结构和算法的人不可能写出效率更高的代码。计算机科学的很多新行业都离…

python加上ffmpeg实现音频分割

前言: 这是一个系列的文章,主要是使用python加上ffmpeg来对音视频文件进行处理,包括音频播放、音频格式转换、音频文件分割、视频播放等。 系列文章链接: 链接1: python使用ffmpeg来制作音频格式转换工具(优化版) 链接2:<Python>PyQt5+ffmpeg,简单视频播放器的编写(…

虚拟环境中使用的Python不是当前虚拟环境的,解决方法

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 在虚拟环境中使用的python和pip不是虚拟环境的pip安装不到当前的虚拟环境中…等 解决方法 1. 解决办法 打开配置文件 vim ~/.bashrc把如下代码注释即…

Python学习笔记--属性的访问控制

三、属性的访问控制 之前也有讲到过,Python 没有真正意义上的私有属性。然后这就导致了对 Python 类的封装性比较差。我们有时候会希望 Python 能够定义私有属性,然后提供公共可访问的 get 方法和 set 方法。Python 其实可以通过魔术方法来实现封装。 …

【临时对象返回值优化】

#不开启返回值优化。 #include <iostream> using namespace std; class Rational{ public:Rational() {cout << this << " called Construct" << endl;}~Rational() {cout << this << " called destruct" << e…

如何进行单病种质控上报管理

过程质量管理发展历程 单病种质量管理兴起之初&#xff0c;医疗机构多强调致残率、致死率、平均住院日、治愈好转率等结果性指标。这些指标主观性强&#xff0c;且为事后管理&#xff0c;无法及时发现问题&#xff0c;具有滞后性。 《卫生部办公厅关于开展单病种质量管理控制…

vue开发环境搭建部署(mac版)

前言 目前后端工作越来越少了&#xff0c;年底了&#xff0c;为了先过验收。项目负责人、产品、需求制定的方案就是先做假页面&#xff0c;所以前端的活多点。 其实现在不喜欢搞前端&#xff0c;原因很多&#xff0c;但是感觉现在似乎流行的码林绝学又是九九归一的瓶颈期…

【C#】文件的移动

今天遇到一个问题&#xff0c;是有关文件移动的&#xff0c;比较棘手&#xff0c;刚解决完就立马发篇文章保存下来&#xff0c;一方面自己看&#xff0c;一方面给大家分享一下。 首先在我的Unity项目里&#xff0c;资源图片文件夹里面大概有400多张图&#xff0c;分别在各自命…

Vue实现面经基础版案例(路由+组件缓存)

一、面经基础版-案例效果分析 1.面经效果演示 2.功能分析 通过演示效果发现&#xff0c;主要的功能页面有两个&#xff0c;一个是列表页&#xff0c;一个是详情页&#xff0c;并且在列表页点击时可以跳转到详情页底部导航可以来回切换&#xff0c;并且切换时&#xff0c;只有…

掌握未来:PureBasic for Mac引领BASIC语言编辑器的新潮流

PureBasic for Mac是一种创新的BASIC语言编辑器&#xff0c;它赋予了编程更多的可能性。在这个充满机遇的时代&#xff0c;掌握编程就等于掌握了一种强大的工具&#xff0c;能够更好地理解和塑造世界。而PureBasic for Mac&#xff0c;正是这样一个让你轻松上手&#xff0c;高效…

蓝桥杯官网练习题(正则问题)

题目描述 考虑一种简单的正则表达式&#xff1a; 只由 x ( ) | 组成的正则表达式。 小明想求出这个正则表达式能接受的最长字符串的长度。 例如 ((xx|xxx)x|(x|xx))xx 能接受的最长字符串是&#xff1a; xxxxxx&#xff0c;长度是 6。 输入描述 一个由 x()| 组成的正则表…

Docker学习路线

一、Docker基础 1. docker的安装 先在虚拟机中安装Linux。 VirtualBox 虚拟机 在CentOS中安装Docker 安装Docker 2. 快速入门 部署 mysql docker部署mysql 3. 常见命令 4. 命令别名 5. 数据卷挂载 6. 本地目录挂载 7. Dokerfile语法 8. 自定义镜像 9. 容器网络互连 …

如何开发一个求职招聘小程序?详细步骤解析与教程

一、确定需求和功能 在开发求职招聘小程序之前&#xff0c;需要明确需求和功能。通过对市场和用户需求的调研和分析&#xff0c;确定小程序需要具备哪些功能&#xff0c;如职位发布、简历投递、在线沟通、面试安排等。 二、选择开发方式 求职招聘小程序的开发方式有多种选择…

【C#枚举 Enum】

C#枚举 Enum 一、枚举 1、枚举是将变量的值罗列出来,变量的值只限于列举出来的值的范围。 2、枚举使用enum关键字来声明&#xff0c;与类同级。枚举本身可以有修饰符&#xff0c;但枚举的成员始终是公共的&#xff0c;不能有访问修饰符。枚举本身的修饰符仅能使用public和int…

Mac安装opencvJava踩坑

SpringBoot导入opencv依赖 先将jar包添加到libraries中在resources目录下创建lib文件夹并复制jar包到这里添加如下依赖&#xff0c;并刷新maven <dependency><groupId>org.opencv</groupId><artifactId>opencv</artifactId><version>4.8.0…

【理解链表指针赋值】链表中cur->next = cur->next->next->next与cur =cur->next->next的区别

最近在做链表的题目的时候&#xff0c;对于所定义的cur链表指针产生了一些疑惑&#xff0c;查阅资料后整理一下我的理解&#xff1a; /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(n…