Как Кафка обращается с производителями, когда все брокеры рушатся?
При изучении и тестировании Kafka возникло сомнение:
Как Кафка управляет производством записей, когда все не работает?
Я знаю, что у потребителей есть тайм-аут на опросах, и он будет время от времени опрашивать новые записи, пока Кафка не вернется в онлайн.
Я также знаю, что у продюсеров есть очередь, к которой добавляется. Это очередь, которая передает содержимое в kafka, но что произойдет, если весь кластер Kafka не работает?
По понятным причинам кластер Kafka больше не получает записи, но как это происходит на стороне клиента?
Используя Kafka для Spring, есть ли механизм, который обрабатывает это?
2 ответа
Если все Kafka брокер не работает, то обработка данных не производится. Ваш поток данных потерян. Я предполагаю, что было бы редко, чтобы все узлы терпели крах одновременно, если у вас было 3 или более брокера Kafka.
If any one node is down, then DevOps job should catch that and try to restart it. If restart is unsuccessful then it should try to spin up a new node and add it to the Kafka cluster. This sort of automation is complex and requires DevOps team to implement and maintain the process.
Это очень редкий сценарий, но, тем не менее, для решения проблем такого рода и управления входящей высокой пропускной способностью kafka Kafka предоставила инструмент Mirror Maker, который помогает иметь другую копию кластера. И если текущий кластер не работает, производитель должен отправить сообщения брокеру зеркалостроителя. https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=27846330