Использование Debezium 0.7 для чтения из MySQL, но получение ошибок тайм-аута сброса и ошибки OutOfMemoryError на начальном этапе создания моментального снимка. Глядя на журналы ниже, кажется, что коннектор пытается записать слишком много сообщений за один раз:
WorkerSourceTask{id=accounts-connector-0} flushing 143706 outstanding messages for offset commit [org.apache.kafka.connect.runtime.WorkerSourceTask]
WorkerSourceTask{id=accounts-connector-0} Committing offsets [org.apache.kafka.connect.runtime.WorkerSourceTask]
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
WorkerSourceTask{id=accounts-connector-0} Failed to flush, timed out while waiting for producer to flush outstanding 143706 messages [org.apache.kafka.connect.runtime.WorkerSourceTask]
Интересно, какие правильные настройки http://debezium.io/docs/connectors/mysql/#connector-properties для больших баз данных (> 50 ГБ). У меня не было этой проблемы с небольшими базами данных. Простое увеличение тайм-аута не кажется хорошей стратегией. В настоящее время я использую настройки коннектора по умолчанию.
Обновлять
Изменил настройки, как предложено ниже, и проблема устранилась:
OFFSET_FLUSH_TIMEOUT_MS: 60000 # default 5000
OFFSET_FLUSH_INTERVAL_MS: 15000 # default 60000
MAX_BATCH_SIZE: 32768 # default 2048
MAX_QUEUE_SIZE: 131072 # default 8192
HEAP_OPTS: '-Xms2g -Xmx2g' # default '-Xms1g -Xmx1g'