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

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日

相关文章

  • Java语言实现非递归实现树的前中后序遍历总结

    Java语言实现非递归实现树的前中后序遍历总结 为什么要用非递归实现树的遍历? 树的遍历可以使用递归实现,但是递归实现有可能导致栈溢出的问题,尤其是当树的层数比较深时。因此,使用非递归实现树的遍历可以避免这个问题。 非递归实现树的前序遍历 前序遍历的顺序是:根节点 –> 左子树 –> 右子树 public void preorder(Node…

    other 2023年6月27日
    00
  • 魔兽世界7.3.5浩劫DH怎么堆属性 wow7.35浩劫DH配装属性优先级攻略

    魔兽世界7.3.5浩劫DH怎么堆属性 DH属性说明 魔兽世界的恶魔猎手(Demon Hunter)职业是军团再临资料片中新增的职业,是一个擅长近战输出和切换的职业,可以扮演 输出 和 肉盾 双重角色,技能并不难掌握,重点在于配装和属性的搭配。 恶魔猎手的 主属性 是敏捷,次要属性则是 坚韧 和 急速。根据他们的职业特性,建议优先堆叠 暴击 和 全能 属性,毒…

    other 2023年6月27日
    00
  • C++教程之array数组使用示例详解

    C++教程之array数组使用示例详解 本篇文章主要介绍C++中数组的使用方法,包括声明、初始化、遍历、使用等详细攻略。 数组的声明和初始化 定义数组时需要指定数组类型、数组名称和数组长度。C++中数组的长度必须是一个常量表达式。 // 定义一个长度为5的int类型数组 int array1[5]; // 定义一个长度为4的double类型数组,并初始化 d…

    other 2023年6月25日
    00
  • org.springframework

    org.springframework详细攻略 1. 什么是org.springframework? org.springframework是一个开源的Java框架,用于构建企业级Java应用程序。它提供了一系列的工具框架,用于简化Java开发过程中的常见,例如依赖注入、面向切面编程、数据访问、Web开发等。org.springframework框架的核心是…

    other 2023年5月7日
    00
  • 文件无法直接发送到蓝牙点击右键没有发送到蓝牙设备

    文件无法直接发送到蓝牙点击右键没有发送到蓝牙设备 如果我们将电脑上的文件发送到其他设备使用蓝牙时,我们通常会采用右键菜单中的“发送到”操作。但是,有时候当我们右击待发送的文件时,却发现“发送到”选项中没有“蓝牙设备”选项,也无法直接将文件发送到蓝牙设备上。对于这种情况,我们可以尝试以下方法来解决: 方法一:重新启动蓝牙服务并连接设备 首先,我们需要确认蓝牙服…

    other 2023年6月27日
    00
  • Java创建型设计模式之工厂方法模式深入详解

    Java创建型设计模式之工厂方法模式深入详解 什么是工厂方法模式? 工厂方法模式是一种创建型设计模式,它提供了一种将对象的创建委托给子类的方式。在工厂方法模式中,我们定义一个抽象的工厂类,该工厂类负责定义创建对象的接口,具体的对象创建则由子类来实现。通过工厂方法模式,我们可以将对象的创建与使用解耦,使得系统更加灵活和可扩展。 工厂方法模式的实现方式 在Jav…

    other 2023年10月15日
    00
  • html动态加载css样式和js脚本示例

    当我们的网站需要多种样式和脚本的时候,我们可以使用一些方法来动态地加载它们,以提高网站的性能和加载速度。这篇文章将详细介绍HTML动态加载CSS样式和JS脚本的方法和步骤。 HTML动态加载CSS样式的方法 在HTML中,我们可以使用<link>标签来加载CSS样式。但是,如果我们的网站需要加载多种CSS样式,那么我们可以使用JavaScript…

    other 2023年6月25日
    00
  • Android编程开发之TextView控件用法(2种方法)

    下面是关于“Android编程开发之TextView控件用法(2种方法)”的完整攻略: 标题 介绍 在Android编程开发中,TextView控件被用于显示文本和可编辑文本。它是最常见的用户界面元素之一,用户可以使用它来浏览或输入文本内容。本攻略将介绍TextView控件的两种常用用法。 方法一:XML布局方式 XML布局方式是Android开发中最常用的…

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