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

Spring云数据流http源kafka应用程序请求主体内存大小问题

苏品
2023-03-14

我在Spring云数据流流中遇到 HTTP 源应用程序的问题。

org.springframework.core.io.buffer.DataBufferLimitException: Exceeded limit on max bytes to buffer : 262144
    at org.springframework.core.io.buffer.LimitedDataBufferList.raiseLimitException(LimitedDataBufferList.java:98) ~[spring-core-5.3.10.jar:5.3.10]
    Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Error has been observed at the following site(s):
    |_ checkpoint ? org.springframework.security.web.server.authorization.AuthorizationWebFilter [DefaultWebFilterChain]
    |_ checkpoint ? org.springframework.security.web.server.authorization.ExceptionTranslationWebFilter [DefaultWebFilterChain]
    |_ checkpoint ? org.springframework.security.web.server.authentication.logout.LogoutWebFilter [DefaultWebFilterChain]
    |_ checkpoint ? org.springframework.security.web.server.savedrequest.ServerRequestCacheWebFilter [DefaultWebFilterChain]
    |_ checkpoint ? org.springframework.security.web.server.context.SecurityContextServerWebExchangeWebFilter [DefaultWebFilterChain]
    |_ checkpoint ? org.springframework.security.web.server.context.ReactorContextWebFilter [DefaultWebFilterChain]
    |_ checkpoint ? org.springframework.security.web.server.header.HttpHeaderWriterWebFilter [DefaultWebFilterChain]
    |_ checkpoint ? org.springframework.security.config.web.server.ServerHttpSecurity$ServerWebExchangeReactorContextWebFilter [DefaultWebFilterChain]
    |_ checkpoint ? org.springframework.security.web.server.WebFilterChainProxy [DefaultWebFilterChain]
    |_ checkpoint ? org.springframework.cloud.sleuth.instrument.web.TraceWebFilter [DefaultWebFilterChain]
    |_ checkpoint ? org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain]
    |_ checkpoint ? HTTP POST "/" [ExceptionHandlingWebHandler]

当我尝试将具有巨大体量的 HTTP 请求发布到 HTTP endpoint时,就会发生这种情况。

我尝试在部署中设置以下属性,但没有帮助:

app.http.spring.codec.max-in-memory-size: 10MB

春云启动器HTTP Kafka源码app使用的版本是3.1.1

有人知道如何解决这个问题吗?

这可以以如下所示的独立方式进行最低限度的复制

  1. 从https://mvnrepository.com/artifact/org.springframework.cloud.stream.app/http-source-kafka/3.1.1下载jar
  2. 在端口9092上本地运行Kafka实例并创建一个名为“输出”的主题。
  3. 使用java-jarhttp-source-kafka-3.1.1.jar运行jar
  4. 向localhost:8080发出HTTP发布请求,请求体大小大于700KB

共有1个答案

商同
2023-03-14

谢谢你提出这个!

事实证明,该HTTP源应用程序的HttpSupplierConfiguration没有考虑Spring Boot自动配置的ServerCodecConfigurer,包括上述Spring.dec。最大内存大小属性。

我有一个这样的修复程序:https://github.com/spring-cloud/stream-applications/pull/204,很快就会合并。

不幸的是,对于开箱即用的应用程序,没有简单的解决方法。可以考虑使用自定义 HTTP 入站终结点实现自己的源应用程序。

 类似资料:
  • 我正在从Spring XD迁移到Spring Cloud Data Flow。当我寻找模块列表时,我意识到一些源码没有在Spring Cloud Flow中列出--其中一个是Kafka源码。 我的问题是为什么在spring cloud data flow中KAFKA源从标准源列表中删除?

  • 我正在遵循入门指南[1],但是我已经从配置设置中删除了MySQL和analytics的内容,因为我不打算使用任何分析函数。但是,scdf服务后来崩溃了,因为没有配置数据源。 好的,所以似乎仍然需要在scdf-config-kafka.yml[2]中配置数据源(尽管从阅读文档来看,我认为它只用于分析内容)。 但为了什么?数据源用于持久化Kafka消息,还是在节点之间建立云流消息? 我找不到任何关于大

  • 我正在使用处理器 API 对状态存储进行一些低级处理。关键是我还需要在存储到商店后写入主题。如何在Spring Cloud Streams Kafka应用程序中完成?

  • 我在weblogic中创建了一个名为jdbc/myds的oracle数据源。

  • 我有一个简单的SCDF流,如下所示: http--端口=12346 | mvmn转换|文件--名称=tmp。txt--目录=/tmp mvmn变换是一个简单的自定义变压器,如下所示: 这很好用。 但我读到,Spring云函数应该允许我实现这样的应用程序,而无需指定绑定和转换器注释,所以我将其更改为: 现在我有一个问题-Spring云函数显然忽略了SCDF源和目标主题名称,而创建了主题和。 SCDF

  • 我有一个常见的任务问题,我可以找到任何解决方案或帮助(也许我需要传递一些属性来工作?)我使用本地服务器1.3.0.M2并创建简单的流 在日志中,我得到了这个: 2017-09-28 12:31:00.644 信息 5156 --- [ -C-1] o.. a.k.c.c.internals.AbstractCoordinator : 成功加入第 1 代的组测试 2017-09-28 12:31:0