Kafka Producer не может проверить запись без PK и вернуть InvalidRecordException - PullRequest
1 голос
/ 14 апреля 2020

У меня ошибка с моим производителем кафки. Я использую разъемы Debezium Kafka V1.1.0 Final и Kafka 2.4.1. Для таблиц с pk все таблицы сбрасываются ясно, но, к сожалению, для таблиц без pk, это выдает мне эту ошибку:

[2020-04-14 10:00:00,096] INFO   Exporting data from table 'public.table_0' (io.debezium.relational.RelationalSnapshotChangeEventSource:280)
[2020-04-14 10:00:00,097] INFO   For table 'public.table_0' using select statement: 'SELECT * FROM "public"."table_0"' (io.debezium.relational.RelationalSnapshotChangeEventSource:287)
[2020-04-14 10:00:00,519] INFO   Finished exporting 296 records for table 'public.table_0'; total duration '00:00:00.421' (io.debezium.relational.RelationalSnapshotChangeEventSource:330)
[2020-04-14 10:00:00,522] INFO Snapshot - Final stage (io.debezium.pipeline.source.AbstractSnapshotChangeEventSource:79)
[2020-04-14 10:00:00,523] INFO Snapshot ended with SnapshotResult [status=COMPLETED, offset=PostgresOffsetContext [sourceInfo=source_info[server='postgres'db='xxx, lsn=38/C74913C0, txId=4511542, timestamp=2020-04-14T02:00:00.517Z, snapshot=FALSE, schema=public, table=table_0], partition={server=postgres}, lastSnapshotRecord=true]] (io.debezium.pipeline.ChangeEventSourceCoordinator:90)
[2020-04-14 10:00:00,524] INFO Connected metrics set to 'true' (io.debezium.pipeline.metrics.StreamingChangeEventSourceMetrics:59)
[2020-04-14 10:00:00,526] INFO Starting streaming (io.debezium.pipeline.ChangeEventSourceCoordinator:100)
[2020-04-14 10:00:00,550] ERROR WorkerSourceTask{id=pg_dev_pinjammodal-0} failed to send record to table_0: (org.apache.kafka.connect.runtime.WorkerSourceTask:347)
org.apache.kafka.common.InvalidRecordException: This record has failed the validation on broker and hence be rejected.

Я проверил таблицы и, кажется, допустимая запись. Я установил моего производителя producer.ack=1 в моей конфигурации. Этот конфиг вызывает недействительность здесь?

1 Ответ

2 голосов
/ 15 апреля 2020

Я проверил журналы, и моя ошибка в установить темы kafka с сжатием журналов для не-pk таблиц , которым нужен ключ. В сообщениях нет ключа, потому что в таблице нет pk, поэтому брокеры не могут проверять сообщения kafka. Так что, если у вас нет pk на вашем столе и вы хотите сделать p sh для kafka, не устанавливайте сжатие журналов в соответствии с вашими темами.

...