web-dev-qa-db-fra.com

obtention de "org.Apache.kafka.common.network.InvalidReceiveException: réception non valide (taille = 1195725856 supérieure à 104857600)"

J'ai installé zookeeper et kafka, Première étape: Exécuter zookeeper avec les commandes suivantes:

bin/zkServer.sh start
bin/zkCli.sh

deuxième étape: exécuter le serveur kafka

bin/kafka-server-start.sh config/server.properties

kafka devrait fonctionner chez localhost: 9092

mais j'obtiens l'erreur suivante: 

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)

Je suis le lien suivant: Link1Link2

Je suis nouveau sur kafka, aidez-moi s'il vous plaît à le configurer.

11
Sidhartha

Essayez de réinitialiser la valeur socket.request.max.bytes du fichier $KAFKA_HOME/config/server.properties à une taille supérieure à votre taille de paquet et redémarrez le serveur Kafka.

5
Nikesh Devaki

Très probablement, vous essayez de vous connecter à un auditeur non-SSL. Si vous utilisez le courtier par défaut du port, vous devez vérifier que: 9092 est le port du port d'écoute SSL sur ce courtier. 

Par exemple, 

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

devrait faire l'affaire pour vous (Assurez-vous de redémarrer Kafka après avoir reconfiguré ces propriétés). 

Vous pouvez également essayer de recevoir une demande trop volumineuse. La taille maximale est la taille par défaut pour socket.request.max.bytes, qui est 100 Mo. Donc, si vous avez un message de plus de 100 Mo, essayez d’augmenter la valeur de cette variable sous server.properties

1
Giorgos Myrianthous

La réponse est probablement dans l'un des 2 domaines

une. socket.request.max.bytes

b. vous utilisez également un noeud final non SSL pour connecter le producteur et le consommateur.

Remarque: le port que vous utilisez ne compte vraiment pas. Si vous avez un ELB, assurez-vous qu’il renvoie tous les bilans de santé pour réussir.

Dans mon cas, j'avais un AWS ELB face à KAFKA. J'avais spécifié le protocole Listernet en tant que TCP au lieu de Secure TCP. Cela a causé le problème.

#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

Voici un extrait de my producteur.properties et de consommateur.properties pour des tests externes.

bootstrap.servers=<AWS-ELB>:9092
security.protocol=SASL_SSL
sasl.mechanism=PLAIN
0
Arun Ganesan