当前位置: 首页 > 知识库问答 >
问题:

Spring Reactive WebClient的请求级反压?

卜和悌
2023-03-14

这类似于如何做akka-http请求级反压?但对于Spring回声系统。

    null

共有1个答案

郗学
2023-03-14

TL;DR:Spring Framework和Reactor Netty没有提供这种支持,我也不知道有哪个库能做到这一点。

您可以使用WebFilter实现您描述的行为,该行为在将传入请求分派给处理程序之前拦截它们,并使用您选择的任何HTTP状态/标头进行答复。

唯一棘手的部分是决定是否应该拒绝请求。您可以将固定的throughtput配置为不超过,或者依赖于其他一些JVM度量?

在Spring中的HTTP上下文中,我们在接受新连接时不强制反压,但在对TCP缓冲区进行读/写时使用此信息。这些信息不通过网络,所以我们在这里仅仅依靠TCP流控制。

如果您想在协议中提供真正的反压力支持,那么您需要在协议本身中支持这一点。这就是Spring中未来的RSocket支持的全部内容。

 类似资料:
  • 我正在用python创建一个基于BaseHTTPServer的代理服务器。它所做的是创建到squid代理的连接,识别浏览器请求(GET、CONNECT、POST等),并向其添加代理授权标头,然后将此请求转发给squid代理。 问题是,据我所知,当我发送连接请求时,我应该将所有相应的流量中继到squid代理。但是,正如我在wireshark中看到的,squid代理没有回复握手的“Client Hel

  • 我有一个具有OAuth2授权的Spring Cloud应用程序: 我添加了这个安全配置: github:https://github.com/rcbandit111/OAuth2/blob/master/src/main/java/org/engine/security/WebSecurityConfig.java 打开Angular应用程序时,出现访问错误: 您知道我需要应用什么配置才能在没有强

  • 问题内容: 我有一个复选框,可以切换某些行为,但是如果有人连续点击100次,我不想向服务器端发送100个请求。 到目前为止,这就是我所准备的(找到以下代码片段): 在我的文档准备功能中: 然后事件本身: 这是因为我将1500毫秒作为去抖动周期,所以如果您在1500毫秒内单击n次,它将仅向服务器发送最新状态。 但是,使用它会有副作用,现在我的其他事件的click事件被搞砸了。我在这里做错什么了吗?有

  • 我想使用带有mysql的npm包knex将myback-end文件夹与localhost上的mysql数据库连接起来。 步骤: 在后端项目文件夹(包含knex和mysql)中运行nodemon server.js文件 在《邮差》中,我喜欢: 打开“邮递员”,选择“Post Requst”,复制URL:localhost:3000/myPath“,复制到正文: {“电子邮件”:“me@gmail.c

  • 我面临一个非常奇怪的问题: 我尝试获取一个反应本机应用程序。在物理iPhone一切正常,在模拟器上我得到错误“网络请求失败”。 API是https,我已经更改了信息。plist允许NSAllowsArbitraryLoads。 我nfo.plist: 我建议是证书之类的。

  • 我正在从事一个SpringMVC项目,我需要完成的任务之一是让用户在POST请求中发送一个JSON数据字符串。我知道Spring将使用Jackson对对象反序列化JSON,但如果我尝试以下方法: 我只是返回HTTP 400错误请求(“客户端发送的请求在语法上不正确”)。 如何获取客户端作为字符串发送的原始JSON?