web-dev-qa-db-fra.com

Kafka Connect - Échec de vidage, expiration du délai en attendant que le producteur vide les messages en attente

J'essaie d'utiliser le Kafka Connect JDBC Source Connector avec les propriétés suivantes en mode BULK.

connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
timestamp.column.name=timestamp
connection.password=XXXXX
validate.non.null=false
tasks.max=1
producer.buffer.memory=2097152
batch.size=1000
producer.enable.idempotence=true
offset.flush.timeout.ms=300000
table.types=TABLE,VIEW
table.whitelist=materials
offset.flush.interval.ms=5000
mode=bulk
topic.prefix=mysql-
connection.user=kafka_connect_user
poll.interval.ms=200000
connection.url=jdbc:mysql://<DBNAME>
value.converter=org.Apache.kafka.connect.json.JsonConverter
key.converter=org.Apache.kafka.connect.storage.StringConverter

J'obtiens l'erreur suivante concernant la validation des décalages, la modification de divers paramètres semble avoir peu d'effet.

[2019-04-04 12:42:14,886] INFO WorkerSourceTask{id=SapMaterialsConnector-0} flushing 4064 outstanding messages for offset commit (org.Apache.kafka.connect.runtime.WorkerSourceTask)
[2019-04-04 12:42:19,886] ERROR WorkerSourceTask{id=SapMaterialsConnector-0} Failed to flush, timed out while waiting for producer to flush outstanding 712 messages (org.Apache.kafka.connect.runtime.WorkerSourceTask)
5
David

Quand security.protocol=SSL est activé, assurez-vous qu'il existe des paramètres SSL distincts pour les travailleurs Connect et les producteurs Connect. Fournir des paramètres SSL pour les deux

Blockquote

# Authentication settings for Connect workers
ssl.keystore.location=/var/private/ssl/kafka.worker.keystore.jks
ssl.keystore.password=worker1234
ssl.key.password=worker1234

# Authentication settings for Connect producers used with source connectors
producer.ssl.keystore.location=/var/private/ssl/kafka.source.keystore.jks
producer.ssl.keystore.password=connector1234
producer.ssl.key.password=connector1234

voir https://docs.confluent.io/5.2.3/connect/security.html#separate-principals

0
Carsten Franz

Si vous essayez de vous connecter avec un cloud confluent, cette erreur est probablement due à une configuration manquante dans les propriétés du travailleur, assurez-vous d'avoir ajouté la configuration du producteur et du consommateur.

consumer.ssl.endpoint.identification.algorithm=https
consumer.sasl.mechanism=PLAIN
consumer.request.timeout.ms=20000
consumer.retry.backoff.ms=500
consumer.sasl.jaas.config=org.Apache.kafka.common.security.plain.PlainLoginModule required username="API_KEY" password="SECRET";
consumer.security.protocol=SASL_SSL

producer.ssl.endpoint.identification.algorithm=https
producer.sasl.mechanism=PLAIN
producer.request.timeout.ms=20000
producer.retry.backoff.ms=500
producer.sasl.jaas.config=org.Apache.kafka.common.security.plain.PlainLoginModule required username="API_KEY" password="SECRET";
producer.security.protocol=SASL_SSL