gateway
gateway核心概念
gateway快速开始
![](https://i-blog.csdnimg.cn/direct/4304917897b6432eb798459afed3a363.png)
![](https://i-blog.csdnimg.cn/direct/6a9f6fda9e55440ca82094e4a9074180.png)
![](https://i-blog.csdnimg.cn/direct/21dfda6c08fa459f8f5f2159bf3a8782.png)
这里我们在配置里把转发的url地址都写死,当服务器发生迁移,ip地址会变动 或者 服务器是以集群的形式部署的,还需要通过nginx来进行反向代理和负载均衡,很麻烦。
我们通过把gateway和nacos集成起来,就可以轻松解决这些问题
集成Nacos
![](https://i-blog.csdnimg.cn/direct/3e6d216953534d09a376d4cc47a0c36b.png)
![](https://i-blog.csdnimg.cn/direct/fe1d6767d273489785b1526a2bd3c52e.png)
![](https://i-blog.csdnimg.cn/direct/bf07e55eb8de43a88d0e7e4e745b75ea.png)
![](https://i-blog.csdnimg.cn/direct/a841d384c3414db3932d8598be769a1c.png)
断言工厂
根据url来进行断言,是gateway内置的断言工厂
![](https://i-blog.csdnimg.cn/direct/29c87786130547478359cd40bc6c09a8.png)
![](https://i-blog.csdnimg.cn/direct/6ef1c8be933140508d5a941848338b43.png)
自定义路由断言工厂
这里假设自定义一个基于Query请求参数的断言工厂,复制源码里面的内容,然后根据需要进行修改
过滤器(先过滤再路由)
(1)先经过 过滤器 把请求的url地址处理后,或者添加删除修改一些请求头、cookie等的信息,
(2)再通过nacos的服务列表进行路由到 对应的服务器上
过滤器的作用:当一个请求来到gateway网关时,我们可以对这个请求进行一个业务逻辑的处理。
比如:
(1)前面通过 过滤器 去把第一层路径给去掉
(2)可以给来到网关的所有请求添加一个请求头,再设置里面的内容。
(3)可以给来到网关的所有请求设置一个cookie等等处理
具体全部内置的过滤器有哪些可以访问官网
下面是一些代码示例:
测试地址是发送给gateway网关的
通过routes路由到下面的@GetMapping的地址,下面的代码来接收请求和进行响应
例1:
![](https://i-blog.csdnimg.cn/direct/75497624d65b4a1494ca5d66ce34c0bb.png)
![](https://i-blog.csdnimg.cn/direct/f13b3359fef54f89b14f1f6043b77526.png)
![](https://i-blog.csdnimg.cn/direct/1264bc3ca22e4cbf895f98611916f4e0.png)
![](https://i-blog.csdnimg.cn/direct/55a000a2ec9746248b48c66339efb14f.png)
![](https://i-blog.csdnimg.cn/direct/9b5f2ee1dd774799a534226efdc01af3.png)
自定义过滤器
全局过滤器
![](https://i-blog.csdnimg.cn/direct/5e1fd918eb4b4524832f10f42153ef2b.png)
![](https://i-blog.csdnimg.cn/direct/c8eb03c08ea940e48ae1333aab0cc5e8.png)
自定义全局过滤器(重点)
记录所有访问过来的请求,保存成日志的形式,可以用自定义全局过滤器
或者判断用户登录、权限方面也可以自定义全局过滤器
![](https://i-blog.csdnimg.cn/direct/28cff8e446544eb1953feea3997c3dd9.png)
请求日志记录
在网关微服务里,在这个地方加上这个命令,可以开启日志记录,将所有通过网关的请求,都记录下来,不过只是输出到控制台
gateway跨域配置
跨域:当http请求 不在 同一个ip+同一个端口时,就叫做跨域
(只有同一个ip+同一个端口才叫 同域,两个都满足才同域)
![](https://i-blog.csdnimg.cn/direct/2a53035c92194cfa99db3865e7fdfeca.png)
![](https://i-blog.csdnimg.cn/direct/59456ab0c49e4332a5a4dd18441727e9.png)
sentinel结合gateway网关
结合sentinel对发送到gateway网关的请求,进行流控降级
![](https://i-blog.csdnimg.cn/direct/0d907fd30daa45c990bedde5775b9303.png)
![](https://i-blog.csdnimg.cn/direct/4cadd838b11744c2b69c94cff7cdeb2c.png)
![](https://i-blog.csdnimg.cn/direct/795d575a6c504491ac68ef8bfd358006.png)
![](https://i-blog.csdnimg.cn/direct/9fd9991d332f44468e01cd6a0a8cba64.png)
![](https://i-blog.csdnimg.cn/direct/db9f4f6677264222a52b2e598476e14f.png)
自定义sentinel结合网关 后的响应内容
在网关层被sentinel流控降级或者熔断后,会响应下面的内容给发送请求者,
这样的内容如果不是我们想要的,就需要自定义响应异常的方式。有两种方式
方式1:(简单)
在yml配置中,分层写上面的内容,
设置响应状态码、响应类型(json格式的)、响应内容(“降级了!”)
网关高可用
相关文章:
![](https://i-blog.csdnimg.cn/direct/ab5716b1bc1a4438892835dbb0179ef8.png)
gateway
gateway核心概念 1. 路由(route) 路由是网关中最基础的部分,路由信息包括一个ID、一个目的URI、一组断言工厂、一组Filter组成。如果断言为真,则说明请求的URL 和 配置的路由匹配。 2. 断言(predicates) 断言函数允许开发者去定义匹配Htt…...
![](https://i-blog.csdnimg.cn/direct/a4519ccceca348be8b79cf2720397e3d.jpeg)
第一个ffmpeg程序
在进行使用ffmpeg进行编写程序时,首先要记得进行注册设备(avdevice_register_all ),程序运行时,只需要注册一次就可以 avdevice_register_all 是 FFmpeg 多媒体处理库中的一个函数,其作用是注册所有可用的音…...
![](https://i-blog.csdnimg.cn/direct/9f1ff63356294417979b24a1a9ac95f0.png)
论文翻译:Large Language Models for Education: A Survey and Outlook
https://arxiv.org/abs/2403.18105 目录 教育领域的大型语言模型:一项调查和展望摘要1. 引言2. 教育应用中的LLM2.1 概述2.2 学习辅助2.2.1 问题解决(QS) 2.2.2 错误纠正(EC)2.2.3 困惑助手(CH)…...
![](https://www.ngui.cc/images/no-images.jpg)
python为什么慢?(自用)
《Cython系列》1. Cython 是什么?为什么要有 Cython?为什么我们要用 Cython? - 古明地盆 - 博客园 (cnblogs.com) 古明地盆的主页 - 博客园 (cnblogs.com) 我原本认为,python慢的原因是“逐行解释程序并执行”,那么我…...
![](https://i-blog.csdnimg.cn/direct/7fe897bf5b264b4a8fbd2ae2ae0ff40c.png)
压缩感知3——重构算法正交匹配追踪算法
算法流程 问题的实质是:AX Y 求解(A是M维,Y是N维且N>>M并且稀疏度K<M)明显X有无穷多解,重构过程是M次采样得到的采样值升维的过程。OMP算法的具体步骤:(1)用X表示信号,初始化残差e0 …...
![](https://i-blog.csdnimg.cn/direct/3c91e2674cf84380a554887c92d0712f.png)
“好物”推荐+Xshell连接实例+使用Conda创建独立的Python环境
目录 主题:好易智算平台推荐RTX 4090DGPU实例租用演示安装配置torch1.9.1cuda11.1.1环境引言:算力的新时代平台介绍:技术与信任的结晶使用案例:实际使用展示创建实例开始使用连接实例(下文演示使用Xshell连接ÿ…...
![](https://i-blog.csdnimg.cn/direct/06080e5a3ff146478810a2c93751064a.png)
浪潮天启防火墙TQ2000远程配置方法SSL-V偏、L2xx 配置方法
前言 本次设置只针对配置V偏,其他防火墙配置不涉及。建议把防火墙内外网都调通后再进行V偏配置。 其他配置可参考:浪潮天启防火墙配置手册 配置SSLVxx 在外网端口开启SSLVxx信息 开启SSLVxx功能 1、勾选 “启用SSL-Vxx” 2、设置登录端口号࿰…...
![](https://www.ngui.cc/images/no-images.jpg)
java八股文面试题
Java八股文面试题通常涵盖了Java语言的基础知识、高级特性、框架应用、数据库操作等多个方面。以下是一些常见的Java面试题及其详细回答,按照不同的主题进行分类: 一、Java基础 面向对象的特征有哪些? 抽象:忽略与当前目标无关的…...
![](https://img-blog.csdnimg.cn/ae666600e3f8492191b4e355bc04b05e.png)
【服务器】在Linux查看运行的Python程序,并找到特定的Python程序
在Linux查看运行的Python程序并找到特定的Python程序 写在最前面1. 使用ps命令查看所有Python进程查看详细信息 2. 使用pgrep命令查找Python进程ID 3. 使用top或htop命令使用top命令使用htop命令 4. 使用lsof命令查找Python进程打开的文件 5. 使用nvidia-smi命令查看GPU使用情况…...
![](https://img-blog.csdnimg.cn/img_convert/d75558bf641b5edd0357a2d0470659a6.png)
安全防御---防火墙实验1
安全防御—防火墙实验1 一、实验拓扑与要求 要求: 1、DMZ区内的服务器,办公区仅能在办公时间内(9:00-18:00)可以访问,生产区的设备全天可以访问 2、生产区不允许访问互联网,办公区和游客区允许访问互联网 …...
![](https://www.ngui.cc/images/no-images.jpg)
SpringBoot配置Swagger开启页面访问限制
在Spring Boot项目中配置Swagger时,开启页面访问限制通常意味着你希望控制哪些用户或角色可以访问Swagger UI文档页面。由于Swagger UI是一个静态资源,它本身并不直接支持基于角色的访问控制(RBAC)。但是,你可以通过Sp…...
![](https://www.ngui.cc/images/no-images.jpg)
前端代码基本逻辑-vue3
前端vue建立过程 安装nodejs 官网下载安装,并且记住安装路径,记得配置系统变量Path 安装VUE/CLI npm install -g vue/cli --全局安装vue 使用VUE/CLI生成代码框架 vue create your-project-name --我的your-project-name为web 运行项目 cd your-…...
![](https://csdnimg.cn/release/blog_editor_html/release2.3.6/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=N7T8)
怎么用PPT录制微课?详细步骤解析!
随着信息技术的不断发展,微课作为一种新型的教学形式,因其短小精悍、针对性强等特点,在教育领域得到了广泛的应用。而PPT作为一款常用的演示工具,不仅可以用来制作课件,还可以利用其内置的录屏功能或结合专业的录屏软件…...
![](https://www.ngui.cc/images/no-images.jpg)
Git使用方法
Git是一种分布式版本控制系统,它可以记录和管理软件开发过程中的变更。 Git的基本概念包括以下几个部分: 仓库(Repository):Git用仓库来存储项目的代码和历史记录。一个仓库可以包含多个分支。 分支(Bran…...
![](https://www.ngui.cc/images/no-images.jpg)
HTTP的请求报文和响应报文是怎样的,有哪些常见字段?
http报文分为请求报文和响应报文 请求报文包含:请求行、请求头、空行、、请求体 请求行包含: 方法:即要执行的操作,如get,post、put、delet 资源路径:请求的资源的URL HTTP版本:使用的http协议…...
![](https://i-blog.csdnimg.cn/direct/0c396ca73fbd4fa7ae709ebd263843c5.png)
自注意力简介
在注意力机制中,每个查询都会关注所有的键值对并生成一个注意力输出。如果查询q,键k和值v都来自于同一组输入,那么这个注意力就被称为是自注意力(self-attention)。自注意力这部分理论,我觉得台大李宏毅老师…...
![](https://www.ngui.cc/images/no-images.jpg)
【GameFramework框架】7-2、GameFramework框架是否“过度设计”?
推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址QQ群:398291828大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 【GameFramework框架】系列教程目录: https://blog.csdn.net/q764424567/article/details/1…...
![](https://img-blog.csdnimg.cn/direct/e349662f1b4446e0b3d4c9c92f198217.png)
RISC-V异常处理流程概述(2):异常处理机制
RISC-V异常处理流程概述(2):异常处理机制 一、异常处理流程和异常委托1.1 异常处理流程1.2 异常委托二、RISC-V异常处理中软件相关内容2.1 异常处理准备工作2.2 异常处理函数2.3 Opensbi系统调用的注册一、异常处理流程和异常委托 1.1 异常处理流程 发生异常时,首先需要执…...
![](https://www.ngui.cc/images/no-images.jpg)
Unity3D中如何降低游戏的Drawcall详解
在Unity3D游戏开发中,Drawcall是一个至关重要的性能指标,它指的是CPU通知GPU绘制一个物体的命令次数。过多的Drawcall会导致游戏性能下降,因此优化Drawcall的数量是提高游戏性能的关键。本文将详细介绍Unity3D中降低Drawcall的几种主要方法&a…...
![](https://i-blog.csdnimg.cn/direct/01081024fcba4a0a81ed8135b33f2abf.png)
小程序-设置环境变量
在实际开发中,不同的开发环境,调用的接口地址是不一样的 例如:开发环境需要调用开发版的接口地址,生产环境需要正式版的接口地址 这时候,我们就可以使用小程序提供了 wx.getAccountInfoSync() 接口,用来获取…...
![](https://i-blog.csdnimg.cn/direct/11158fac96564b9ab318056374b3ff09.png#pic_center)
【RabbitMQ】一文详解消息可靠性
目录: 1.前言 2.生产者 3.数据持久化 4.消费者 5.死信队列 1.前言 RabbitMQ 是一款高性能、高可靠性的消息中间件,广泛应用于分布式系统中。它允许系统中的各个模块进行异步通信,提供了高度的灵活性和可伸缩性。然而,这种通…...
![](https://www.ngui.cc/images/no-images.jpg)
RuntimeError: Unexpected error from cudaGetDeviceCount
RuntimeError: Unexpected error from cudaGetDeviceCount 0. 引言1. 临时解决方法 0. 引言 使用 vllm-0.4.2 部署时,多卡正常运行。升级到 vllm-0.5.1 时,报错如下: (VllmWorkerProcess pid30692) WARNING 07-12 08:16:22 utils.py:562] U…...
![](https://www.ngui.cc/images/no-images.jpg)
uboot学习:(一)基础认知
目录 uboot是一个裸机程序(bootloader) 作用 要运行linux系统时,如何从外置的flash拷贝到DDR中,才能启动 uboot使用步骤 步骤1中的命令例子 注意 uboot源码获取方法 uboot是一个裸机程序(bootloader)…...
![](https://www.ngui.cc/images/no-images.jpg)
每天一个数据分析题(四百二十六)- 总体方差
为了比较两个总体方差,我们通常检验两个总体的() A. 方差差 B. 方差比 C. 方差乘积 D. 方差和 数据分析认证考试介绍:点击进入 题目来源于CDA模拟题库 点击此处获取答案 数据分析专项练习题库 内容涵盖Python,SQL,统计学&a…...
![](https://i-blog.csdnimg.cn/direct/0b4ee8b4271747679a4cf4268bd422eb.png#pic_center)
【C++】设计一套基于C++与C#的视频播放软件
在开发一款集视频播放与丰富交互功能于一体的软件时,结合C的高性能与C#在界面开发上的便捷性,是一个高效且实用的选择。以下,我们将概述这样一个系统的架构设计、关键技术点以及各功能模块的详细实现思路。 一、系统架构设计 1. 架构概览 …...
![](https://www.ngui.cc/images/no-images.jpg)
数学建模中的辅助变量、中间变量、指示变量
在数学建模中,除了决策变量外,还有一些其他类型的变量,如中间变量、辅助变量和指示变量。每种变量在模型中都有特定的用途和意义。以下是对这些变量的详细解释: 1. 决策变量(Decision Variables) 定义&am…...
![](https://www.ngui.cc/images/no-images.jpg)
python的seek()和tell()
seek() seek() 是用来在文件中移动指针位置的方法。它的作用是将文件内部的当前位置设置为指定的位置。 seek(offset, whence) 参数说明 offset: 这是一个整数值,表示相对于起始位置的偏移量。如果是正数,表示向文件末尾方向移动;如果是负…...
![](https://i-blog.csdnimg.cn/direct/c0fe79faa4b44adc9068cd1e30f204fa.png)
Go泛型详解
引子 如果我们要写一个函数分别比较2个整数和浮点数的大小,我们就要写2个函数。如下: func Min(x, y float64) float64 {if x < y {return x}return y }func MinInt(x, y int) int {if x < y {return x}return y }2个函数,除了数据类…...
![](https://i-blog.csdnimg.cn/direct/01d0c42965a8459d8613664f1da4da3f.png)
【每日一练】python之sum()求和函数实例讲解
在Python中, sum()是一个内置函数,用于计算可迭代对象(如列表、元组等)中所有元素的总和。如下实例: """ 收入支出统计小程序 知识点:用户输入获取列表元素添加sum()函数,统计作用 "&…...
![](https://i-blog.csdnimg.cn/direct/b90d7b9e5972442fbad7e235b0ea988b.png)
打造智慧校园德育管理,提升学生操行基础分
智慧校园的德育管理系统内嵌的操行基础分功能,是对学生日常行为规范和道德素养进行量化评估的一个创新实践。该功能通过将抽象的道德品质转化为具体可量化的指标,如遵守纪律、尊师重道、团结协作、爱护环境及参与集体活动的积极性等,为每个学…...
![](https://img-blog.csdnimg.cn/img_convert/34cc7f9ec699e86c86c3893f2a2d8491.png)
网站消耗流量/产品线上营销推广方案
作为工程师,我们知道我们应该避免重新发明轮子。 如果可以的话,我们想使用其他人编写的库为我们做一些繁重的工作。 在本文中,我将与您分享一些有关如何利用DLL(或任何其他具有COM类型信息的文件,例如TLB或OCX文件)中的现有库的知…...
![](https://img-blog.csdnimg.cn/img_convert/53a18e1f6ec022f81fd203a4196cc252.png)
程序开发需要学什么/seo培训机构
https://blog.csdn.net/lizhihua0925/article/details/52595813blog.csdn.net最近在研究Docker,正好也想学习一下Laravel,但每次laravel的部署很麻烦,所以正在研究了一下,做一下Docker镜像,感觉棒棒的~~~Dockerfilel…...
![](/images/no-images.jpg)
xampp 开发网站/公司网站推广费用
Substring with Concatenation of All Words 比较复杂的一题,首先是要明确用滑块的概念来解决,始终保持L集合中的字符串在滑块中都只出现了一次,当然设置一个总计数count,当cout等于L集合长度时,即使找了一段符合要求的…...
![](https://img-my.csdn.net/uploads/201209/03/1346653684_4037.jpg)
重庆建设机电网站/网络推广运营途径
最近在使用GridView做一个小项目,以下是本人使用过程中的个人总结,本文主要总结控件的属性设置,附上图片,给大家一个参考。后续会给大家分享功能实现和使用的小技巧。 GirdControl是数据的容器,它包含多种显示方式&…...
![](https://img2018.cnblogs.com/blog/830478/201810/830478-20181020235424445-300298396.png)
徐州公司做网站/seo可以从哪些方面优化
应付离散实验足够了,但是还不会调用EasyX绘图啊~~~ 1 #include <bits/stdc.h>2 #include <windows.h>3 4 int start 0;5 6 // 城市名称7 char city_name[6] { A, B, C, D, E, F };8 9 // 记录到过的城市10 int city[6] {0};11 12 13 int pass_count …...
![](/images/no-images.jpg)
青岛网站设计怎么选/外链在线发布工具
题目 给你一棵每条边从父亲指向儿子的树,每条边上面有一个字母。 从树上的任意一点出发,走出的路径就是对应一个子串。 (这不是TrieTrieTrie,因为每个父亲可能会连出字母相同的边) 再给你一个字符串SSS,让…...