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

Kafka InvalidReceiveException接收无效

徐翔
2023-03-14

我们在测试和生产中得到了这一点。它是连续的,我们不知道这些错误是如何每隔几秒钟就出现的,至少我们在测试中没有从另一个系统得到反馈。

我们的信息非常小,最多只有几百字节。

这是 1.2 GB。我尝试将:套接字.request.max.字节设置为1195725856,但随后内存不足,即使堆大小约为2.5 GB,并且OpenShift容器设置为最大32GB。

非常欢迎任何帮助!

org.apache.kafka.common.network.InvalidReceiveException: Invalid receive (size = 1195725856 larger than 104857600)
    at org.apache.kafka.common.network.NetworkReceive.readFromReadableChannel(NetworkReceive.java:132)
    at org.apache.kafka.common.network.NetworkReceive.readFrom(NetworkReceive.java:93)
    at org.apache.kafka.common.network.KafkaChannel.receive(KafkaChannel.java:235)
    at org.apache.kafka.common.network.KafkaChannel.read(KafkaChannel.java:196)
    at org.apache.kafka.common.network.Selector.attemptRead(Selector.java:545)
    at org.apache.kafka.common.network.Selector.pollSelectionKeys(Selector.java:483)
    at org.apache.kafka.common.network.Selector.poll(Selector.java:412)
    at kafka.network.Processor.poll(SocketServer.scala:551)
    at kafka.network.Processor.run(SocketServer.scala:468)
at java.lang.Thread.run(Thread.java:748)

共有3个答案

郎思远
2023-03-14

听起来像是一个不匹配的协议问题;可能您正在尝试连接到非SSL侦听器。如果使用端口的默认代理,则需要验证:9092是该代理上的SSL侦听器端口。

例如

listeners=SSL://:9092
advertised.listeners=SSL://:9092
inter.broker.listener.name=SSL

应该可以帮你实现(确保在重新配置这些属性后重启Kafka)。

或者,您可能正在尝试接收太大的请求。最大大小是socket.request.max.bytes的默认大小,即100MB。因此,如果您有一条大于100MB的消息,请尝试在server.properties下增加此变量的值。

董光霁
2023-03-14

我们的错是将Kafka端口卷曲,以便在开放移位中进行“活度探头”。卷发是一个网络客户端,Kafka使用TCP。

将改用NetCat。

萧远
2023-03-14

这已通过删除producer的< code > spring . Kafka . SSL . protocol 属性解决。< br >当kakfka broker不支持Ssl而producer支持时,问题就来了。和大小没关系。因为生产者发送超过100 mbs的消息的可能性非常低。

花了将近90分钟来解决这个SSL问题,因为我在configbean中有一个定制的kafka生产者。

 类似资料:
  • 我已经在互联网上搜索了一两个星期,想找到一个UDP客户端程序,它可以同时发送和接收数据,但是对于c#来说,没有关于这个主题的内容。在过去的几天里,我尝试创建一个UDP客户端,其中包含一个接收数据的线程。 发送UDP数据包效果很好,但程序无法接收我发送到的服务器,我相信服务器正在将所有数据包发送到不同的端口。 我如何修复这个程序? 有没有一种更简单的方法来进行UDP编程,比如用于TCP的Stream

  • 我有一个Angular 4和Java/Spring MVC/Jhipster网站,我正试图使用本教程创建一个websocket(使用sock js和stomp.js)。我可以连接到websocket,但是当我尝试从Java代码向客户端发送数据时,什么也没有发生。请帮帮我。 下面,我只是试图访问我的浏览器中的http://localhost:9001/api/websocket/testSend,并

  • 我已经将Android应用程序上传到playstore。在第一次下载时,它会崩溃,但在那之后,它工作正常。它将错误显示为无法实例化接收器com。谷歌。Android应用程序。分析。由java引起的AnalyticsReceiver。lang.ClassNotFoundException:未找到类“com.google.android.apps.analytics.analytics.Analyti

  • 如果我创建上面的类并尝试在tomcat7上部署war,我会看到以下错误。

  • 我正在尝试构建一个简单的应用程序,可以从FCM(Firebase云消息传递系统)接收通知。我能够生成令牌并将其显示在文本视图中。另外,我还编写了在“FirebaseMessagingService”类“中使用log.d()在LOG上打印通知消息的逻辑,该类从”FirebaseMessagingService“扩展而来。但是,一旦我从FCM控制台发送消息,应用程序就会崩溃,并且在Android显示器

  • 我正在开发一个Web应用程序与Java后端在下面提到的配置与Loadbalancer(禅Loadbalancer)环境 APP1=Centos 7、Apache 2.4.6、Tomcat 7.0.53、Mod_Ajp连接器、, APP2=Centos 7、Apache 2.4.6、Tomcat 7.0.53、Mod_Ajp连接器、, 在一段时间后,tomcat JVM没有响应apache请求的问题