【问题标题】:how to use Spring Cloud Gateway without Reactive stuff?如何在没有 Reactive 的情况下使用 Spring Cloud Gateway?
【发布时间】:2021-04-25 16:00:20
【问题描述】:

我想使用 Spring Cloud Gateway 创建一个新项目,但我不想要所有的反应性功能。对我来说,如果其他微服务阻塞 I/O 而不是 Reactive 就好了。

  1. 我该怎么做?
  2. 假设我正在将云网关实现为响应式,而所有其他 MS 都为阻塞式,这是一个好方法吗?这样做有什么坏处?

【问题讨论】:

    标签: spring spring-webflux reactive spring-cloud-gateway


    【解决方案1】:

    Spring Cloud Gateway 建立在 Spring webflux 和 netty 之上,无法更改。

    来自参考文档:

    Spring Cloud Gateway 基于 Spring Boot 2.x、Spring WebFlux 和 项目反应堆。因此,许多熟悉的同步 库(例如 Spring Data 和 Spring Security)和模式 您知道使用 Spring Cloud Gateway 时可能不适用。如果你是 不熟悉这些项目,我们建议您先阅读他们的 帮助您熟悉一些新概念的文档 在使用 Spring Cloud Gateway 之前。

    Spring Cloud Gateway 需要 Spring 提供的 Netty 运行时 引导和 Spring Webflux。它在传统的 Servlet 中不起作用 容器或构建为 WAR。

    Spring Cloud Reference Docs

    非阻塞 IO 应用程序对阻塞 IO 应用程序进行网络调用是完全可以接受的。非阻塞 IO 应用程序仍然具有非阻塞 IO 的所有好处。它在等待网络调用响应阻塞 IO 应用程序时不会消耗资源,理论上应该消耗更少的资源并因此能够处理更多的并发调用。

    【讨论】:

    • 感谢您的回答,迈克尔。所以如果我理解你的话——网关不会等待其他 I/O Blocking MS 的响应,对吗?
    • 所以如果我理解你的话 - 网关不会等待其他 I/O 阻塞 MS 的响应,对吗?
    • spring cloud gateway会等待响应,虽然它在等待响应时不会阻塞任何资源(即线程)。阅读反应器模式以及它与 spring mvc 中的每个请求模型的线程有何不同可能很有用。 dzone.com/articles/…
    猜你喜欢
    • 2015-02-21
    • 1970-01-01
    • 2016-10-26
    • 2019-08-03
    • 2016-01-15
    • 2020-12-23
    • 1970-01-01
    • 1970-01-01
    • 2017-08-27
    相关资源
    最近更新 更多