web-dev-qa-db-fra.com

Le producteur de Kafka n'est pas capable d'envoyer des messages

Je suis très nouveau à Kafka. 

Utiliser Kafka 0.11

Le nombre de courtiers actifs '1' ne répond pas au facteur de réplication requis '3' pour la rubrique décalages (configuré via 'offsets.topic.replication.factor')

Je reçois l'erreur ci-dessus lors de l'envoi d'un message pour un sujet

kafka-topics --zookeeper localhost:2181 --topic test --describe
Topic:test1 PartitionCount:1    ReplicationFactor:1 Configs:
Topic: test1    Partition: 0    Leader: 0   Replicas: 0 Isr: 0 
7
mukulbudania

Comment commencez-vous le courtier? Qu'est-ce que le fichier server.properties? Celui fourni avec le paquet téléchargé devrait avoir la ligne suivante:

offsets.topic.replication.factor=1

Pour être clair, l’erreur que vous voyez n’est pas liée au sujet que vous essayez de publier. Aujourd'hui, Kafka n'enregistre plus les décalages de sujets pour les consommateurs dans Zookeeper, mais dans des "sujets internes" portant le nom __consumer_offsets. Bien sûr, si vous avez 1 courtier, vous ne pouvez pas avoir un facteur de réplication de 3. Je voudrais donc jeter un coup d'œil à votre fichier server.properties. Si la propriété ci-dessus est manquante, la valeur par défaut est 3.

12
ppatierno

Dans mon cas, mon erreur est aussi similaire.

ERROR [KafkaApi-2] Number of alive brokers '0' does not meet the required replication factor '1' for the offsets topic (configured via 'offsets.topic.replication.factor'). This error can be ignored if the cluster is starting up and not all brokers are up yet. (kafka.server.KafkaApis)


Cluster: 2 Brokers (ID=1,ID=2) avec hostname-1 et hostname-2
Version Kafka: 1.0.1

listeners=PLAINTEXT://:9090,SSL://:9091,PLAINTEXT_EXT://:9092,SSL_EXT://:9093,SASL_SSL://:9094,SASL_PLAINTEXT://:9095

et les deux courtiers server.properties est défini sur offsets.topic.replication.factor=1

mais j'ai configuré mon nom d'hôte annoncé en tant que hostname-1 dans les deux courtiers sur les protocoles utilisés pour la communication entre courtiers (et donc avec ID=2, continue de donner l'erreur ci-dessus.

advertised.listeners=PLAINTEXT://hostname-2:9090,SSL://hostname-2:9091,PLAINTEXT_EXT://<EXTERNAL_IP>:9092,SSL_EXT://<EXTERNAL_IP>:9093,SASL_SSL://hostname-1:9094,SASL_PLAINTEXT://hostname-1:9095

correction sur SASL_SSL et SASL_PLAINTEXT a corrigé cette erreur.

PS: SASL_PLAINTEXT est security.inter.broker.protocol dans ce cluster. Cette erreur semble également être liée à la disponibilité du port.

0
daemonsl