Spring云数据流http源kafka应用请求体内存大小问题
Spring cloud data flow http source kafka application request body memory size issue
我在 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]
当我尝试 post 向 HTTP 端点发送具有巨大正文的 HTTP 请求时,会发生这种情况。
我已经尝试在部署中设置以下 属性 但对我没有帮助:
app.http.spring.codec.max-in-memory-size: 10MB
spring cloud starter HTTP Kafka source app 使用的版本是3.1.1
有人知道如何解决这个问题吗?
这可以像下面这样以独立的方式最少地复制
- 从以下位置下载 jar:https://mvnrepository.com/artifact/org.springframework.cloud.stream.app/http-source-kafka/3.1.1
- 运行 在本地端口 9092 上创建一个 Kafka 实例并创建一个名为“output”的主题。
- 运行 带有
java -jar http-source-kafka-3.1.1.jar
的罐子
- 向 localhost:8080 发出 HTTP post 请求,请求正文大小大于 700KB
感谢您提出这个问题!
事实证明,该 HTTP 源应用程序的 HttpSupplierConfiguration
没有考虑 Spring 引导自动配置的 ServerCodecConfigurer
,包括提到的 spring.codec.max-in-memory-size
属性.
我有这样的修复程序:https://github.com/spring-cloud/stream-applications/pull/204,即将合并。
遗憾的是,开箱即用的应用程序没有简单的解决方法。
您可以考虑使用自定义 HTTP 入站端点实现您自己的源应用程序。
我在 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]
当我尝试 post 向 HTTP 端点发送具有巨大正文的 HTTP 请求时,会发生这种情况。
我已经尝试在部署中设置以下 属性 但对我没有帮助:
app.http.spring.codec.max-in-memory-size: 10MB
spring cloud starter HTTP Kafka source app 使用的版本是3.1.1
有人知道如何解决这个问题吗?
这可以像下面这样以独立的方式最少地复制
- 从以下位置下载 jar:https://mvnrepository.com/artifact/org.springframework.cloud.stream.app/http-source-kafka/3.1.1
- 运行 在本地端口 9092 上创建一个 Kafka 实例并创建一个名为“output”的主题。
- 运行 带有
java -jar http-source-kafka-3.1.1.jar
的罐子
- 向 localhost:8080 发出 HTTP post 请求,请求正文大小大于 700KB
感谢您提出这个问题!
事实证明,该 HTTP 源应用程序的 HttpSupplierConfiguration
没有考虑 Spring 引导自动配置的 ServerCodecConfigurer
,包括提到的 spring.codec.max-in-memory-size
属性.
我有这样的修复程序:https://github.com/spring-cloud/stream-applications/pull/204,即将合并。
遗憾的是,开箱即用的应用程序没有简单的解决方法。 您可以考虑使用自定义 HTTP 入站端点实现您自己的源应用程序。