У нас есть приложение, в котором потребитель читает сообщение, а поток выполняет ряд действий, включая доступ к базе данных до того, как сообщение будет отправлено в другую тему. Время между получением и созданием сообщения в цепочке может занять несколько минут. Как только сообщение создается для новой темы, выполняется фиксация, чтобы указать, что мы закончили работу с сообщением очереди потребителя. По этой причине автоматическая фиксация отключена.
Я использую потребителя высокого уровня, и я замечаю, что тайм-аут сеансов zookeeper и kafka, потому что он занимает слишком много времени, прежде чем мы что-либо делаем в очереди потребителя, поэтому kafka в конечном итоге перебалансирует каждый раз, когда поток возвращается, чтобы прочитать больше от потребителя очереди, и через некоторое время потребителю требуется много времени, прежде чем он прочитает новое сообщение.
Я могу установить очень большое время ожидания сеанса zookeeper, чтобы не создавать проблем, но затем мне нужно соответствующим образом настроить параметры перебалансировки, и kafka некоторое время не будет подбирать нового потребителя среди других побочных эффектов.
Какие у меня есть варианты решения этой проблемы? Есть ли способ поддержать кафку и смотрителя зоопарка, чтобы они были счастливы? Сохранятся ли у меня те же проблемы, если я буду использовать простой потребитель?