Kafka InvalidReceiveException Неправильный прием - PullRequest
0 голосов
/ 27 августа 2018

Мы получаем это в тесте и продукт. Это непрерывно, и мы не знаем, как эти ошибки продолжают появляться каждые несколько секунд, мы, по-видимому, не получаем фид из другой системы в тесте, по крайней мере.

У нас очень маленькие сообщения, в лучшем случае несколько сотен байтов.

Это 1,2 ГБ. Я попытался установить: socket.request.max.bytes на 1195725856, но затем получил недостаточно памяти, хотя размер кучи составляет около 2,5 ГБ, а для контейнера OpenShift было установлено максимум 32 ГБ.

Любая помощь приветствуется!

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 ]

0 голосов
/ 28 августа 2018

Мы были виноваты в том, что керлингировали порт Кафки для «живого зонда» в Openshift. CURL - это Http-клиент, Kafka использует TCP.

Вместо этого будет использовать NetCat.

0 голосов
/ 22 января 2019

Это было решено удалением пружины. Кафка. Ssl. Протокол собственности производителя.
Когда kakfka брокер не поддерживает Ssl, но производитель это делает, возникает эта проблема. Это не связано с размером. Потому что очень низкая вероятность отправки сообщений производителем более 100 мб.

Потратил почти 90 минут, чтобы понять эту проблему SSL, потому что у меня был собственный производитель kafka внутри bean-компонента config.

0 голосов
/ 27 августа 2018

Похоже на несовпадающую проблему протокола; возможно вы пытаетесь подключиться к не-SSL-слушателю. Если вы используете посредник порта по умолчанию, вам необходимо убедиться, что: 9092 - это порт прослушивателя SSL на этом посреднике.

Например,

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

должен помочь вам (обязательно перезапустите Kafka после повторной настройки этих свойств).

В качестве альтернативы вы можете пытаться получить слишком большой запрос. Максимальный размер - это размер по умолчанию для socket.request.max.bytes, который составляет 100 МБ. Поэтому, если у вас есть сообщение размером более 100 МБ, попробуйте увеличить значение этой переменной до server.properties.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...