SpringCloud保姆级搭建教程四---Gateway

news2024/11/24 0:39:47

1、gateway干嘛用的呢?

答,系统保安,所有想访问系统的请求都要通过gateway

2、来吧,开始吧。第一步,创建个模块,就叫gateway。创建模块的步骤,前面都贴过图哦

3、添加依赖,在gateway模块中添加nacos和gateway的依赖添加进去,但是发现gateway,又让输入版本号。那就还是父工程没有呗,那就把版本号升高点,或者直接百度查一下,然后试就完了。我这里是用的这几个版本,我也不知道对不对,反正就是不报错,在我这,不错就是对。

gateway pom.xml

父工程 pom.xml

4、依赖加完了,那就写启动类,加注解

5、创建application.yml 写配置信息

来吧,启动一下吧,看看nacos里面有没有。真不错,有了。

6、接下来就是测试呗,配置文件中的路由部分,也就是routes下面写的,已经将bigson和smallson绑定在了gateway上,现在只需要将端口号改成gateway的,就能访问到这俩服务的接口了(都显示小儿子是因为上一节的feign中,bigson调用了smallson的方法)

7、GOOD!!!成功了。但是,网关怎么可能只是这么点用呢?你上微机课老师是不是要检查你身上有没有违禁物品,是不是还要给你戴上鞋套,gateway也可以。接下来就说,gateway的过滤器

三种,分别是,

局部过滤器 filters

全局过滤器 default-filters

自定义过滤器

第一种:局部过滤器

注意缩进哈,这个就是局部过滤器,只给访问bigson的请求,添加请求头和响应头

第二种:全局过滤器

给所有经过网关的请求添加请求头

第三种:自定义过滤器

实现GlobalFilter,重写filter方法,进行自定义操作,想干嘛随你的便。比如,查验请求头中是否携带token

你可能还看到了实现了另一个类,Ordered,重写了getOder方法,这是干嘛的呢?排序的!客官请看:

过滤器总结:

8、过滤器说完了,还能干嘛呢?配置跨域。嗯,是这样的,咱继续

gateway配置示例:

server:
  port: 8060

spring:
  application:
    name: mall-gateway
  cloud:
    nacos:
      server-addr: 192.168.56.100:8848
    gateway:
      #跨域处理,需要关闭具体微服务上的跨域设置,否则此设置无效
      globalcors: # 全局的跨域配置
        add-to-simple-url-handler-mapping: true # 解决options请求被拦截问题
          # options请求 就是一种询问服务器是否浏览器可以跨域的请求
          # 如果每次跨域都有询问服务器是否浏览器可以跨域对性能也是损耗
        # 可以配置本次跨域检测的有效期maxAge
        # 在maxAge设置的时间范围内,不去询问,统统允许跨域
        corsConfigurations:
          '[/**]':
            allowedOriginPatterns: # 允许哪些网站的跨域请求
              - "*"
            allowedMethods: # 允许的跨域ajax的请求方式
              - "GET"
              - "POST"
              - "DELETE"
              - "PUT"
              - "OPTIONS"
            allowedHeaders: "*"    # 允许在请求中携带的头信息
            allowCredentials: true    # 允许在请求中携带cookie
            maxAge: 360000            # 本次跨域检测的有效期(单位毫秒)
            # 有效期内,跨域请求不会一直发option请求去增大服务器压力
      routes:
        - id: route-baidu-demo
          uri: https://www.baidu.com
          predicates:
            - Query=url,baidu
        #请求转发到商品模块,注意路由配置先后顺序,gateway默认按照配置顺序进行断言匹配
        - id: mall-product-route
          uri: lb://mall-product
          predicates:
            - Path=/app/product/**
          filters:
            - RewritePath=/app/(?<segment>/?.*), /$\{segment}
        #请求转发到renren-fast模块
        - id: renren-fast-route
          # 负载均衡请求转发至对应服务,需要添加负载均衡依赖,否则前端报503错误
          uri: lb://renren-fast
          predicates:
            # 当请求第一个路径为app时,转发给renren后端服务
            - Path=/app/**
          filters:
            # 将请求路径中的app改成renren-fast,从而可以让人人后台正常接收请求
            - RewritePath=/app/(?<segment>/?.*), /renren-fast/$\{segment}

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

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

相关文章

SSRF漏洞 | iwebsec

文章目录SSRF漏洞介绍00-SSRF漏洞验证01-SSRF漏洞文件读取02-SSRF漏洞内网探测03-SSRF漏洞内网应用攻击源码分析SSRF漏洞介绍 这篇文章写地很好。 SSRF&#xff08;Sever-Side-Request-Forgery&#xff0c;服务端请求伪造&#xff09;是一种由攻击者构造请求&#xff0c;由服…

【逐步剖C】-第六章-结构体初阶

一、结构体的声明 1. 结构体的基本概念 结构体是一些值的集合&#xff0c;这些值称为成员变量。结构体的每个成员可以是不同类型的变量。结构体使得C语言有能力描述复杂类型。 如学生&#xff0c;有姓名、学号、性别等&#xff1b;如书&#xff0c;有作者&#xff0c;出版日期…

LeetCode-(94,144,145).二叉树的前中后续遍历

目录二叉树的前序遍历二叉树的中序遍历二叉树的后序遍历二叉树的前序遍历 递归 class Solution {public List<Integer> preorderTraversal(TreeNode root) {List<Integer> list new ArrayList<>();dfs(root,list);return list;}public static void dfs(T…

C# JSON的使用实例和jsonNet程序包的安装

建一个txt文档&#xff0c;存放json内容[{"id":2,"name":"净化","damage":0},{"id":4,"name":"隐身","damage":10000},{"id":6,"name":"疾跑","damage&q…

出现failed to load steamui.dll如何解决?好的修复方法推荐

当你电脑突然出现failed to load steamui.dll的时候&#xff0c;你是否一脸懵逼&#xff1f;根本不知道发生啥时候&#xff0c;突然就会这样报错&#xff0c;其实造成这个原因&#xff0c;主要是因为问题出在steam上&#xff0c;我们还是有很多种方法可以解决的&#xff0c;今天…

OpenCV基础知识与基本操作

1 基本语法操作 1 读取图像 读取图像的如法如下 img cv2.imread(图像地址[,flags])cv2暂不支持读取中文路径&#xff0c;所以务必确认地址中不含中文。 flags为选填项&#xff0c;可以设置读取图片时的处理方式: cv2.IMREAD_UNCHANGED&#xff1a;-1&#xff0c;读入图像并…

一天一道力扣题

300. 最长递增子序列给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c;[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列…

es-04搜索和查询

文章目录搜索和查询查询的上下文查询语法1.Searchtimeout&#xff1a;2.ES常用查询&#xff1a;(1)Query_string&#xff1a;(2)Query DSL&#xff1a;(3)Full-text queries&#xff1a;全文检索(5)Query and filter&#xff1a;查询和过滤Deep paging图解Scroll search&#x…

Centos7基于docker搭建gitlab mysql tomcat

STEP1 搭建gitlab$ sudo yum install docker-ce $ sudo systemctl start docker搜索Gitlab镜像 并拉取$ docker search gitlab $ docker pull beginor/gitlab-ce:11.0.1-ce.0 //选择自己要安装的版本在服务器本地创建需要映射的文件 etc&#xff08;配置&#xff09; data&…

网关服务限流熔断降级分布式事务

目录一、网关服务限流熔断降级二、Seata--分布式事务1、分布式事务基础①事务②本地事物③分布式事务④分布式事务的场景2、分布式事务解决方案①全局事务②最大努力通知③TCC事务3、Seata介绍4、Seata实现分布式事务控制①案例基本代码&#xff08;异常模拟&#xff09;②启动…

机器学习调参

机器学习调参常用调参方法举例K邻近算法&#xff08;最常规版本&#xff09;加入交叉验证加上网格搜索GridSearchCV函数介绍GridSearchCVcross_val_score常用调参方法举例 sklearn使得我们在很多编写代码的时候更多的工作倾向于调参数而不是去写算法本身&#xff0c;本篇文章整…

HTML表单(属性/元素/输入类型/输入属性):看这一篇就够了

HTML表单 HTML 表单用于搜集不同类型的用户输入。 <form> 元素 HTML 表单用于收集用户输入。 <form> 元素定义 HTML 表单&#xff1a; 实例 <form>form elements</form> HTML 表单包含表单元素。 表单元素指的是不同类型的 input 元素、复选框、单…

maven 命令指定配置文件打包springboot项目

再开发过程中&#xff0c;通常用工具集成了maven&#xff0c;很少直接用maven命令操作打包&#xff0c;记不住&#xff0c;麻烦有时候工具也出现问题&#xff0c;只能用命令行下面很有必要记录一下这个过程我这里用idea编辑器&#xff0c;项目原因 打包本地配置环境可以&#x…

Oracle MAA 参考架构

文章目录总览青铜青铜 MAA 参考架构青铜特性青铜停机时间总结白银白银 MAA 参考架构白银特性白银停机时间总结黄金黄金 MAA 参考架构远程备库多备库备库读取器农场跨区域远程同步备库黄金特性黄金停机时间总结白金白金 MAA 参考架构白金特性白金停机时间总结参考文档总览 图1 …

Springboot+vue+hadoop+java图书个性化推荐系统

前台首页功能模块 3.1首页 图书个性化推荐系统&#xff0c;在前台首页可以查看首页、图书信息、好书推荐、留言反馈、个人中心、后台管理等内容&#xff0c;如图 3.2图书信息 在图书信息页面通过查看图书编号、图书名称、图书类别、图片、作者、出版社、版次、数量、点击次数等…

python自学之《21天学通Python》(10)——正则表达式

第13章 正则表达式 最初的正则表达式出现于理论计算机科学的自动控制理论和形式化语言理论中。在这些领域中有对计算&#xff08;自动控制&#xff09;的模型和对形式化语言描述与分类的研究。 程序员所用的正则表达式是指用某种模式去匹配一类具有共同特征的字符串。正则表达…

ant-design V4升级V5记录(成功篇)

官方文档&#xff1a;https://ant.design/docs/react/migration-v5-cn 1、安装运行工具之前&#xff0c;提交本地修改内容&#xff1b; 2、工具运行完&#xff0c;根据提示修改文件问题&#xff1b; 3、移除config文件中module&#xff0c; [import,{libraryName:antd, libr…

负载均衡上传webshell+apache换行解析漏洞

目录一、负载均衡反向代理下的webshell上传1、nginx负载均衡2、负载均衡下webshell上传的四大难点难点一&#xff1a;需要在每一台节点的相同位置上传相同内容的webshell难点二&#xff1a;无法预测下一次请求是哪一台机器去执行难点三&#xff1a;当我们需要上传一些工具时&am…

Jenkins创建多分支流水线

Jenkins创建多分支流水线一、准备工作二、安装插件1、安装Docker和Docker Pipeline2、安装Blue Ocean3、安装Publish Over SSH三、创建多分支流水线四、配置以及脚本四、构建项目在我们的实际开发过程中&#xff0c;我们势必会存在多个分支进行不同的研发需要&#xff0c;这个时…

【LoRa 与 LoRaWAN】知识点汇总

本文主要记录【LoRa 与 LoRaWAN】知识点汇总&#xff0c;知识均来源于网络&#xff0c;纯属资料汇总与搬运 涉及到lora基本知识点&#xff0c;lora芯片的工作分析&#xff0c;专业名词解释 【LoRa 与 LoRaWAN】知识点汇总1.Lora和LoraWAN的区别2. lora 相关知识点汇总2.1 Lora调…