5-5springgateway网关-y_zoran-博客园

yizhihongxing

5-5 Spring Gateway网关 - y_zoran - 博客园

什么是Spring Cloud Gateway

Spring Cloud Gateway是Spring Cloud生态系统中的网关。类似于ZUUL网关,它可以处理路由请求,执行过滤等操作,可以实现对微服务请求的统一管理,同时还支持WebSocket、HTTP请求转发、负载均衡等功能。

Spring Cloud Gateway的优势

相较于ZUUL1.x,Spring Cloud Gateway优势如下:

  • 轻量级,可以在不依赖Servlet容器的情况下运行。
  • 基于异步非阻塞模型Reactor构建,性能优越。
  • 支持函数式编程模型。
  • 支持路由断言、过滤器等,这些过滤器支持全局配置、路由级别配置及特定的URI级别配置,更加灵活。
  • 内置了Hytrix熔断器和负载均衡器。

Spring Cloud Gateway的使用

Spring Cloud Gateway的使用方式分为以下几个步骤:

  1. 引入相关依赖

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

  1. 配置路由

yaml
spring:
cloud:
gateway:
routes:
- id: blog
uri: https://www.cnblogs.com/
predicates:
- Path=/blog/**
- id: github
uri: https://github.com/
predicates:
- Path=/github/**

这里配置了两个路由,一个是把以/blog开头的请求转发到博客园,另一个是把以/github开头的请求转发到GitHub。

  1. 编写自定义过滤器

```java
@Component
public class MyFilter implements GlobalFilter, Ordered {

   @Override
   public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
       System.out.println("请求路径:" + exchange.getRequest().getURI().getPath());
       return chain.filter(exchange);
   }

   @Override
   public int getOrder() {
       return -1;
   }

}
```

这里编写一个简单的过滤器,输出请求路径信息。

  1. 启动应用并测试

在启动应用后,访问http://localhost:8080/blog就会转发到博客园,访问http://localhost:8080/github就会转发到GitHub,并在控制台输出请求路径信息。

总结

Spring Cloud Gateway是Spring Cloud生态系统中的一个强大网关,具有轻量级、灵活、高性能等优势。在使用过程中需要配置路由、过滤器等,可以实现对微服务请求的统一管理。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:5-5springgateway网关-y_zoran-博客园 - Python技术站

(0)
上一篇 2023年3月28日
下一篇 2023年3月28日

相关文章

  • vbs实现右键菜单中添加CMD HERE

    添加“CMD HERE”右键菜单功能可以方便地在指定文件夹打开CMD,提高工作效率。下面是具体步骤: 1. 新建vbs文件 在任何位置新建一个文本文件,将其命名为“cmd_here.vbs”。 2. 编写vbs代码 将以下代码复制到“cmd_here.vbs”文件中: Const MenuText = "CMD HERE" Set obj…

    other 2023年6月27日
    00
  • Iptables防火墙四表五链概念及使用技巧详解

    Iptables防火墙四表五链概念及使用技巧详解 简介 在Linux系统中,Iptables是一种被广泛使用的防火墙程序,在网络安全中发挥着非常重要的作用。本文将对Iptables防火墙的四表五链概念以及使用技巧进行详细的讲解。 四表 Iptables防火墙中的四个表分别是:filter表、nat表、mangle表和raw表。 filter表 filter表…

    other 2023年6月27日
    00
  • python核心编程–学习笔记–6–序列(上)字符串

    以下是“Python核心编程–学习笔记–6–序列(上)字符串”的完整攻略,包括两个示例说明。 Python核心编程–学习笔记–6–序列(上)字符串 在Python中,字符串是一种常见的序列类型。本文将介绍Python中字符串的基础知识、常用操作和两个示例说明。 1. 字符串的基础知识 字符串是由一系列字符组成的序列,可以使用单引号、双引号或三引号…

    other 2023年5月10日
    00
  • C语言数据结构中堆排序的分析总结

    C语言数据结构中堆排序的分析总结 堆排序的基本思路 堆排序(Heap Sort)是利用堆这种数据结构而设计的一种排序算法,堆排序是选择排序的一种。堆排序分为两种方法,分别是大根堆排序和小根堆排序。下面以大根堆排序为例讲解堆排序的基本思路。 将初始待排序关键字序列(R1,R2….Rn)构建成大根堆,此堆为初始的无序区。 将堆顶元素R[1]与最后一个元素R[…

    other 2023年6月27日
    00
  • 炉石传说酒馆战棋野猪人核心阵容卡组推荐 野猪人攻略

    炉石传说酒馆战棋野猪人核心阵容卡组推荐 野猪人攻略 野猪人核心阵容 在炉石传说的酒馆战棋模式中,野猪人核心阵容是一个拥有强大单体和群体输出的阵容。它的组成如下: 战斗恶犬 格鲁尔 萨尔玛先知 恐惧魔王阿克蒙德 变形金刚 这五个角色都是非常强力的战斗力英雄,在组合在一起后能够相互配合,形成更强大的输出力量。 卡组推荐 卡组1:野猪人核心阵容 + 护盾机器人 A…

    other 2023年6月27日
    00
  • Ruby基本的环境变量设置以及常用解释器命令介绍

    下面是Ruby基本的环境变量设置以及常用解释器命令介绍的攻略: Ruby环境变量设置 PATH环境变量 在安装Ruby之后,我们需要将其添加到系统的PATH环境变量中,这样我们就可以直接使用命令行来调用Ruby。在Windows系统下,可以按如下步骤进行设置: 打开“控制面板”,在搜索框中输入“环境变量”,选择“编辑系统环境变量”。 在“系统属性”窗口中选择…

    other 2023年6月27日
    00
  • buildbot入门系列—介绍篇

    Buildbot是一款开源的持续集成(CI)工具,可以自动化构建、测试和部署软件项目。本文将深入介绍Buildbot的入门知识,包括Buildbot基本概念、架构和使用方法,并提供两个示例说明。 Buildbot的基本概念 Master和Worker Buildbot的架构由Master和Worker两部分组成。Master是Buildbot的核心,负责管理…

    other 2023年5月8日
    00
  • C++ list的实例详解

    C++ list的实例详解 什么是C++ list? 在C++ STL中,list是一种双向链表容器,可以用于存储各种数据类型的元素。list在插入和删除操作上效率比较高,但是随机访问效率较低。 如何使用C++ list 引入list头文件 “`c++ include “` 声明list c++list<int> mylist; 在list中…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部