Я запускал свой kafka-connect на двух машинах ec2. Таким образом, независимо от количества задач, эти две машины всегда будут продолжать выполнение задач. Отсюда и подержанные машины. Недавно я перенес кафку-коннект на кубернетес. Я добился хорошей эффективности процессора / памяти.
Но проблема возникает, когда происходит уменьшение масштаба kubernetes . Уменьшение размера стручков не происходит изящно .
Например. Предположим, есть 2 пакета p1 и p2. p1 выполняет 3 задачи t1, t2, t3 p2 выполняет 2 задачи t4, t5 (здесь задача t5 - это задача для исходного соединителя, который переносит данные из postgres в kafka)
Когда какой-либо модуль исчезает во время уменьшения масштаба, задачи, выполняемые на нем, перебалансированы на других модулях. Предположим, что pod p2 исчезает.
После перебалансировки задач новое состояние кластера выглядит следующим образом: - P1 выполняет 5 задач t1, t2, t3, t4_new, t5_new
Но в журналах для моего исходного соединителя говорится, что некоторые другая задача (предположительно задача, работающая на старом модуле t5) все еще выполняется и получает доступ к данным postgres db.
Как я могу убедиться, что всякий раз, когда модуль уменьшается, это происходит изящно в том смысле, что все задачи, выполняющиеся на модуле остановился.