Имя автора:От лета до холода
Об авторе: Сосредоточьтесь на Java и больших данных, стремимся исследовать границы технологий и делиться передовыми практиками и идеями.
Колонка статей: Колонка Ся Чжиихань-Кафка
Введение в колонку. Целью этой колонки является представление основных концепций, основных компонентов и сценариев использования Kafka в простой для понимания форме, а также пошаговое создание системы знаний об очередях сообщений и потоковой обработке, независимо от того, заинтересованы ли вы в распределенных системы или подготовка к работе с ними. Делая первый шаг в области больших данных, в этой колонке представлены все необходимые ресурсы, рекомендации и вопросы для собеседований. Подпишитесь бесплатно прямо сейчас и начните свой путь обучения Kafka!
Механизм доставки сообщений Kafka в основном использует режим Pull, но также включает в себя некоторые функции режима Push. Ниже приводится подробное описание применения этих двух режимов в Kafka:
1. Режим вытягивания
В режиме Pull Потребитель активно получает сообщения от Брокера. Это основной способ потребления сообщений в Kafka, имеющий следующие характеристики:
- потребительский контроль:PullРежим позволяет потребителям контролировать скорость получения сообщений в зависимости от их вычислительной мощности.。Потребители могут решать, когда и сколько сообщений получать,Это помогает избежать задержек, вызванных медленной обработкой сообщений.
- гибкость:Поскольку потребители могут контролировать получение сообщений,Это обеспечивает возможность обработки различных объемов сообщений и скоростей обработки. Потребители могут корректировать стратегию привлечения в соответствии со своими потребностями.,Например, пакетное или одиночное вытягивание.
- Отслеживание места потребления:существоватьPullв режиме,Потребителю необходимо поддерживать смещение (Offset).,Используется для записи местоположения извлеченных сообщений. так,Даже после перезапуска после сбоя потребителя,Вы также можете продолжить потребление с того места, на котором остановились в прошлый раз.
- дизайн без гражданства:Pullузор делаетKafkaПотребитель спроектирован так, чтобы быть лицом без гражданства,Потому что они не полагаются на информацию о статусе Брокера. Потребителям нужно только отслеживать свои собственные компенсации.,Брокеру не требуется хранить какую-либо информацию о потребителях.
2. Режим нажатия
Хотя Kafka в основном использует режим Pull, он также включает в себя некоторые характеристики режима Push, особенно с точки зрения изменений и доставки сообщений в группе потребителей:
- Push-сообщение:существоватьв группе потребителей,Когда присоединяется новый потребитель или уходит существующий потребитель,Kafka автоматически перераспределит раздел.,Это активирует отправку раздела. Этот механизм обеспечивает балансировку нагрузки и высокую доступность.
- Автоматическое управление разделами:KafkaКлиентская библиотека потребителя будет обрабатыватьPartitionраспределение и ребалансировка,Потребителям не нужно вручную управлять разделами. Когда меняется статус группы потребителей,Kafka будет отвечать за отправку раздела соответствующему потребителю.
- Заказанная рассылка:существоватьодинокийPartitionвнутренний,Сообщения в порядке. Потребителей можно рассматривать как получателей сообщений в режиме Push.,Потому что им не нужно активно тянуть,Сообщения приходят автоматически по порядку.
- Координация группы потребителей:группа потребителейвнутренний Механизм координации аналогиченPushмодель,Координация и обмен сообщениями между членами группы автоматически управляются внутренними механизмами Kafka.
Таким образом, механизм доставки сообщений Kafka основан на режиме Pull, и потребители активно получают сообщения от брокера, что обеспечивает потребителям высокую степень контроля и гибкости. В то же время Kafka также использует некоторые функции режима Push, особенно в управлении группами потребителей и распределением разделов, чтобы обеспечить высокую доступность и балансировку нагрузки системы. Этот механизм обмена сообщениями, сочетающий в себе характеристики Pull и Push, позволяет Kafka адаптироваться к различным сценариям использования и потребностям.