Ответ 1
Попробуйте сбросить значение socket.request.max.bytes
в $KAFKA_HOME/config/server.properties
превышающее размер вашего пакета, и перезапустите сервер kafka.
Я установил zookeeper и kafka, первый шаг: запуск zookeeper с помощью следующих команд:
bin/zkServer.sh start
bin/zkCli.sh
второй шаг: запуск кафки сервера
bin/kafka-server-start.sh config/server.properties
Кафка должна работать на localhost: 9092
но я получаю следующую ошибку:
WARN Unexpected error from /0:0:0:0:0:0:0:1; closing connection (org.apache.kafka.common.network.Selector)
org.apache.kafka.common.network.InvalidReceiveException: Invalid receive (size = 1195725856 larger than 104857600)
Я перехожу по следующей ссылке: Link1 Link2
Я новичок в kafka, пожалуйста, помогите мне настроить его.
Попробуйте сбросить значение socket.request.max.bytes
в $KAFKA_HOME/config/server.properties
превышающее размер вашего пакета, и перезапустите сервер kafka.
Скорее всего, вы пытаетесь подключиться к не-SSL-слушателю. Если вы используете посредник порта по умолчанию, вам необходимо убедиться, что: 9092 - это порт прослушивателя SSL на этом посреднике.
Например,
listeners=SSL://:9092
advertised.listeners=SSL://:9092
inter.broker.listener.name=SSL
должен сделать свое дело за вас (убедитесь, что вы перезапустите Kafka после повторной настройки этих свойств).
В качестве альтернативы вы можете пытаться получить слишком большой запрос. Максимальный размер - это размер по умолчанию для socket.request.max.bytes
, который составляет 100 МБ. Поэтому, если у вас есть сообщение размером более 100 МБ, попробуйте увеличить значение этой переменной в server.properties
.
Ответ, скорее всего, в одной из 2 областей
а. socket.request.max.bytes
б. вы используете конечную точку без SSL для соединения производителя и потребителя тоже.
Примечание: порт, который вы запускаете, действительно не имеет значения. Убедитесь, что если у вас есть ELB, ELB возвращает все проверки здоровья, чтобы быть успешным.
В моем случае у меня был AWS ELB, противостоящий KAFKA. Я указал протокол Интернета как TCP вместо Secure TCP. Это вызвало проблему.
#listeners=PLAINTEXT://:9092
inter.broker.listener.name=INTERNAL
listeners=INTERNAL://:9093,EXTERNAL://:9092
advertised.listeners=EXTERNAL://<AWS-ELB>:9092,INTERNAL://<EC2-PRIVATE-DNS>:9093
listener.security.protocol.map = INTERNAL: SASL_PLAINTEXT, EXTERNAL: SASL_PLAINTEXT sasl.enabled.mechanisms = PLAIN sasl.mechanism.inter.broker.protocol = PLAIN
Вот фрагмент моего производителя .properties и consumer.properties для внешнего тестирования.
bootstrap.servers=<AWS-ELB>:9092
security.protocol=SASL_SSL
sasl.mechanism=PLAIN