Главная страница
Навигация по странице:

  • Нахождение предпочтительных ведущих реплик

  • Рис. 5.2.

  • Apache Kafka. Потоковая обработка и анализ данных. Apache Kafka. Потоковая обработка и анализ данныхСерия Бестселлеры OReilly


    Скачать 7.59 Mb.
    НазваниеApache Kafka. Потоковая обработка и анализ данныхСерия Бестселлеры OReilly
    Дата21.06.2022
    Размер7.59 Mb.
    Формат файлаpdf
    Имя файлаApache Kafka. Потоковая обработка и анализ данных.pdf
    ТипДокументы
    #609074
    страница15 из 39
    1   ...   11   12   13   14   15   16   17   18   ...   39
    119
    уровневый.потребитель.чем-то.похож.на.текущий.класс.потребителя.наличием.
    групп.потребителей.и.перебалансировкой.разделов,.но.использует.Zookeeper.для.
    управления.группами.потребителей.и.не.предоставляет.таких.широких.возмож- ностей.контроля.фиксации.и.перебалансировки,.как.имеющийся.в.новой.версии.
    Как.уже.говорилось,.поскольку.текущий.потребитель.поддерживает.оба.типа.по- ведения,.гораздо.более.надежен.и.предоставляет.разработчику.гораздо.бо'льшие.
    возможности.контроля,.мы.не.будем.обсуждать.эти.старые.API..Если.вас.интере- сует.их.использование,.подумайте.еще.раз,.после.чего.обратитесь.к.документации.
    Kafka.за.дополнительной.информацией.
    Резюме
    Мы.начали.главу.с.подробного.описания.групп.потребителей.Kafka.и.обеспечи- ваемых.ими.возможностей.разделения.работы.по.чтению.событий.из.тем.между.
    несколькими.потребителями..После.теории.привели.практический.пример.по- требителя,.подписывающегося.на.тему.и.непрерывно.читающего.события..Затем.
    сделали.обзор.важнейших.параметров.конфигурации.потребителей.и.их.влияния.
    на.поведение.последних..Значительную.часть.главы.мы.посвятили.обсуждению.
    смещений.и.их.отслеживания.потребителями..Понимание.механизма.фиксации.
    смещений.потребителями.чрезвычайно.важно.для.написания.надежных.потреби- телей,.так.что.мы.не.пожалели.времени.на.объяснение.различных.способов.сделать.
    это..Затем.обсудили.дополнительные.части.API.потребителей,.перебалансировку.
    и.закрытие.потребителя.
    В.завершение.главы.мы.остановились.на.десериализаторах,.применяемых.потреби- телями.для.преобразования.хранимых.в.Kafka.байтовых.массивов.в.Java-объекты,.
    доступные.для.обработки.приложениями..Довольно.подробно.обсудили.десери- ализаторы.Avro,.поскольку.они.чаще.всего.используются.с.Kafka,.хотя.это.лишь.
    один.из.доступных.типов.десериализаторов.
    Теперь,.когда.вы.научились.генерировать.и.получать.события.с.помощью.Kafka,.
    в.следующей.главе.мы.объясним.некоторые.внутренние.особенности.реализации.
    платформы.

    5
    Внутреннее устройство Kafka
    Для.промышленной.эксплуатации.Kafka.или.написания.использующих.ее.прило- жений.знать.внутреннее.устройство.платформы.необязательно..Однако.понимание.
    особенностей.работы.Kafka.помогает.при.отладке.и.выяснении.того,.почему.в.кон- кретной.ситуации.она.ведет.себя.так,.а.не.иначе..Рассмотрение.всех.подробностей.
    реализации.и.проектных.решений.Kafka.выходит.за.рамки.данной.книги,.так.что.
    в.этой.главе.мы.остановимся.на.трех.вопросах,.особенно.актуальных.для.тех,.кому.
    приходится.иметь.дело.с.этой.платформой.
    ‰
    ‰
    Функционирование.репликации.Kafka.
    ‰
    ‰
    Обработка.Kafka.запросов.от.производителей.и.потребителей.
    ‰
    ‰
    Хранение.данных.в.Kafka:.форматы.файлов.и.индексы.
    Глубокое.понимание.этих.вопросов.особенно.полезно.при.тонкой.настройке.Kafka:.
    разбираться.в.механизмах,.контролируемых.параметрами.настройки,.важно.для.
    того,.чтобы.применять.их.осознанно,.а.не.изменять.хаотично.
    Членство в кластере
    Для.поддержания.списка.состоящих.в.настоящий.момент.в.кластере.брокеров.
    Kafka.использует.Apache.ZooKeeper..У.каждого.брокера.есть.уникальный.иден- тификатор.(ID),.задаваемый.в.его.файле.конфигурации.или.генерируемый.ав- томатически..При.каждом.запуске.процесса.брокер.регистрируется.с.этим.ID.
    в.ZooKeeper.посредством.создания.временного узла.(ephemeral.node).(
    http://
    www.bit.ly/2s3MYHh
    )..Различные.компоненты.Kafka.подписываются.на.путь.ре- гистрации.брокеров.
    /brokers/ids
    .в.ZooKeeper,.чтобы.получать.уведомления.при.
    добавлении.или.удалении.брокеров..Если.попробовать.запустить.второй.брокер.
    с.тем.же.ID,.будет.возвращена.ошибка.—.новый.брокер.попытается.зарегистриро-

    Контроллер 121
    ваться,.но.ему.это.не.удастся,.поскольку.для.данного.идентификатора.брокера.уже.
    существует.узел.ZooKeeper.
    При.потере.связи.брокера.с.ZooKeeper.(обычно.в.результате.останова.брокера,.
    а.иногда.из-за.нарушения.связности.сети.или.длительной.паузы.на.сборку.мусора).
    созданный.при.запуске.брокера.временный.узел.будет.автоматически.удален.из.
    ZooKeeper..Подписанные.на.список.брокеров.компоненты.Kafka.будут.уведомлены.
    об.удалении.брокера.
    И.хотя.соответствующий.брокеру.узел.удаляется.при.его.останове,.ID.брокера.по- прежнему.присутствует.в.других.структурах.данных..Например,.список.реплик.
    всех.тем.(см..далее.раздел.«Репликация»).содержит.идентификаторы.брокеров.для.
    реплик..Таким.образом,.в.случае.невосстановимого.сбоя.брокера.можно.запустить.
    новый.брокер.с.тем.же.ID,.и.он.немедленно.присоединится.к.кластеру.вместо.старо- го.и.получит.те.же.разделы.и.темы.
    Контроллер
    Контроллер.—.это.брокер.Kafka,.который.помимо.выполнения.обычных.своих.
    функций.отвечает.за.выбор.ведущих.реплик.для.разделов.(обсудим.ведущие.
    реплики.разделов.и.их.функциональность.в.следующем.разделе)..Первый.запу- щенный.в.кластере.брокер.становится.контроллером,.создавая.в.ZooKeeper.вре- менный.узел.под.названием.
    /controller
    ..Остальные.брокеры,.запускаясь,.также.
    попытаются.создать.этот.узел,.но.получат.исключение.«узел.уже.существует»,.
    в.результате.чего.поймут,.что.узел-контроллер.уже.имеется.и.у.данного.кластера.
    есть.контроллер..Брокеры.создают.таймеры ZooKeeper.(
    http://www.bit.ly/2sKoTTN
    ).
    на.узле-контроллере.для.оповещения.о.производимых.на.нем.изменениях..Таким.
    образом.мы.гарантируем,.что.у.кластера.в.каждый.заданный.момент.времени.будет.
    только.один.контроллер.
    В.случае.останова.брокера-контроллера.или.разрыва.его.соединения.с.ZooKeeper.
    временный.узел.исчезнет..Другие.брокеры.из.кластера.будут.оповещены.об.этом.
    посредством.таймеров.ZooKeeper.и.попытаются.сами.создать.узел-контроллер..
    Первый.узел,.создавший.контроллер,.и.станет.новым.узлом-контроллером,.а.осталь- ные.получат.исключение.«узел.уже.существует».и.пересоздадут.свои.таймеры.на.
    новом.узле-контроллере..Каждый.новый.выбранный.контроллер.получает.новое.
    большее.значение.начала отсчета контроллера.(controller.epoch).с.помощью.опе- рации.условного.инкремента.ZooKeeper..Текущее.начало.отсчета.контроллера.
    известно.брокерам,.так.что.они.будут.игнорировать.полученные.от.контроллера.
    сообщения.с.более.старым.значением.
    Если.контроллер.посредством.отслеживания.соответствующего.пути.ZooKeeper.
    обнаруживает,.что.брокер.вышел.из.состава.кластера,.то.понимает,.что.всем.

    122 Глава 5 • Внутреннее устройство Kafka разделам,.ведущая.реплика.которых.находилась.на.этом.брокере,.понадобится.
    новая.ведущая.реплика..Он.проходит.по.всем.требующим.новой.ведущей.реплики.
    разделам,.выбирает.ее.(просто.берет.следующую.в.списке.реплик.этого.раздела).
    и.отправляет.запрос.всем.брокерам,.содержащим.или.новые.ведущие.реплики,.или.
    существующие.ведомые.реплики.для.данных.разделов..Запрос.содержит.инфор- мацию.о.новой.ведущей.и.ведомых.репликах.для.этих.разделов..Новая.ведущая.
    реплика.знает,.что.должна.начать.обслуживать.запросы.на.генерацию.и.потребле- ние.от.клиентов,.а.ведомые.—.что.должны.приступить.к.репликации.сообщений.от.
    новой.ведущей.
    Контроллер,.получив.информацию.о.присоединении.брокера.к.кластеру,.задейству- ет.идентификатор.брокера.для.выяснения.того,.есть.ли.на.этом.брокере.реплики..
    Если.да,.контроллер.уведомляет.как.новый,.так.и.уже.существующие.брокеры.об.
    изменении,.а.реплики.на.новом.брокере.приступают.к.репликации.сообщений.от.
    имеющихся.ведущих.реплик.
    Подытожим..Kafka.использует.временные.узлы.ZooKeeper.для.выбора.контроллера,.
    его.уведомления.о.присоединении.узлов.к.кластеру.и.их.выходе.из.его.состава..
    Контроллер.отвечает.за.выбор.ведущих.разделов.и.реплик.при.обнаружении.при- соединения.узлов.к.кластеру.и.выходе.из.его.состава..Для.предотвращения.разделе- ния.полномочий,.когда.два.узла.считают.себя.текущим.контроллером,.применяется.
    значение.начала.отсчета.контроллера.
    Репликация
    Репликация.—.основа.основ.архитектуры.Kafka..Первая.же.фраза.документации
    1
    платформы.описывает.его.как.«распределенный,.секционированный.сервис.ре- плицируемых.журналов.фиксации»..Репликация.критически.важна,.поскольку.
    с.ее.помощью.Kafka.обеспечивает.доступность.и.сохраняемость.данных.при.неиз- бежных.сбоях.отдельных.узлов.
    Как.мы.уже.говорили,.данные.в.Kafka.сгруппированы.по.темам..Последние.раз- биваются.на.разделы,.у.каждого.из.которых.может.быть.несколько.реплик..Эти.ре- плики.хранятся.на.брокерах,.причем.каждый.из.них.обычно.хранит.сотни.или.даже.
    тысячи.реплик,.относящихся.к.разным.темам.и.разделам.
    Существует.два.типа.реплик.
    ‰
    ‰
    Ведущие. Одна.реплика.из.каждого.раздела.назначается.ведущей.(leader)..Через.
    нее.выполняются.все.запросы.на.генерацию.и.потребление,.чтобы.обеспечить.
    согласованность.
    ‰
    ‰
    Ведомые. Все.реплики.раздела,.не.являющиеся.ведущими,.называются.ведомы- ми.(followers)..Они.не.обслуживают.клиентские.запросы,.их.единственная.зада-
    1.
    Речь.идет.о.документации.к.Kafka.версии.0.9.0..—.Примеч. пер.

    Репликация 123
    ча.—.реплицировать.сообщения.от.ведущей.реплики.и.поддерживать.актуальное.
    по.сравнению.с.ней.состояние..В.случае.аварийного.сбоя.ведущей.реплики.раз- дела.одна.из.ведомых.будет.повышена.в.ранге.и.станет.новой.ведущей.
    Еще.одна.обязанность.ведущей.реплики.—.знать,.какие.ведомые.реплики.ак- туальны.(по.сравнению.с.ней),.а.какие.—.нет..Ведомые.реплики.поддерживают.
    актуальность.посредством.репликации.всех.сообщений.от.ведущей.по.мере.их.
    поступления..Но.они.могут.отставать.вследствие.множества.причин,.например,.за- медления.репликации.в.результате.перегруженности.сети.или.аварийного.останова.
    брокера,.из-за.чего.все.его.реплики.начинают.отставать.и.отстают.до.тех.пор,.пока.
    он.не.будет.запущен.снова.и.репликация.не.возобновится.
    Чтобы.не.отстать.от.ведущей,.реплики.посылают.ей.запросы.
    Fetch
    ,.такие.же,.какие.
    потребители.отправляют.для.потребления.сообщений..В.ответ.на.них.ведущая.
    реплика.отправляет.ведомым.сообщения..В.каждом.из.запросов.
    Fetch
    .содержится.
    смещение.сообщения,.которое.реплика.желает.получить.следующим,.что.обеспе- чивает.поддержание.нужного.порядка.
    Реплика.запросит.сообщение.1,.затем.2,.потом.3.и.не.запросит.сообщения.4.до.тех.
    пор,.пока.не.получит.все.предыдущие..Это.значит,.что.ведущая.реплика.знает,.
    что.ведомая.получила.все.сообщения.вплоть.до.3,.когда.последняя.запрашивает.
    сообщение.4..Ведущая.реплика.на.основе.последних.запрошенных.репликами.
    смещений.может.определить,.насколько.отстает.каждая.из.них..Если.реплика.
    не.запрашивала.сообщений.более.10.секунд.или.запрашивала,.но.не.отстает.более.
    чем.на.10.секунд,.то.она.считается.рассогласованной.(out.of.sync)..Если.реплика.от- стает.от.ведущей,.то.не.может.более.надеяться.стать.новой.ведущей.в.случае.отказа.
    нынешней.—.в.конце.концов,.в.ней.же.нет.всех.сообщений.
    Напротив,.стабильно.запрашивающие.новые.сообщения.реплики.называются.со-
    гласованными
    .(in-sync)..Только.согласованная.реплика.может.быть.избрана.веду- щей.репликой.раздела.в.случае.сбоя.действующей.ведущей.реплики.
    Параметр.настройки.
    replica.lag.time.max.ms
    .задает.промежуток.времени,.по.
    истечении.которого.бездействующая.или.отстающая.ведомая.реплика.будет.со- чтена.рассогласованной..Это.допустимое.отставание.влияет.на.поведение.клиентов.
    и.сохранение.данных.при.выборе.ведущей.реплики..Мы.обсудим.это.подробнее.
    в.главе.6,.когда.будем.говорить.о.гарантиях.надежности.
    Помимо.действующей.ведущей.реплики.в.каждом.разделе.есть.предпочтительная
    ведущая реплика.(preferred.leader).—.та,.которая.была.ведущей.в.момент.создания.
    темы..Предпочтительная.она.потому,.что.при.первоначальном.создании.разделов.
    производится.распределение.ведущих.реплик.между.брокерами.(его.алгоритм.
    обсудим.далее.в.этой.главе)..В.результате.можно.ожидать,.что,.когда.ведущие.ре- плики.всех.разделов.кластера.будут.одновременно.и.предпочтительными,.распре- деляться.нагрузка.по.брокерам.будет.равномерно..По.умолчанию.в.конфигурации.
    Kafka.задан.параметр.
    auto.leader.rebalance.enable=true
    ,.при.котором.она.будет.

    124 Глава 5 • Внутреннее устройство Kafka проверять,.является.ли.предпочтительная.реплика.ведущей.и.согласована.ли.она,.
    инициируя.в.этом.случае.выбор.ведущей.реплики,.чтобы.сделать.предпочтитель- ную.ведущую.реплику.действующей.
    Нахождение предпочтительных ведущих реплик
    Проще всего найти предпочтительную ведущую реплику с помощью списка реплик разделов. (Подробные данные о разделах и репликах можно найти в выводимой утилитой kafka-topics.sh информации. Мы обсудим ее и другие инструменты адми- нистратора в главе 10.) Предпочтительная ведущая реплика всегда стоит первой в списке. На самом деле не имеет значения, какая реплика является ведущей в данный момент или что реплики распределены по разным брокерам с помощью утилиты переназначения реплик. При перераспределении реплик вручную важно помнить, что указываемая первой реплика будет предпочтительной, так что их нужно распределять по разным брокерам, чтобы не перегружать одни брокеры ведущими, оставляя другие без законной доли нагрузки.
    Обработка запросов
    Основная.доля.работы.брокера.Kafka.заключается.в.обработке.запросов,.поступа- ющих.ведущим.репликам.разделов.от.клиентов,.реплик.разделов.и.контроллера..
    У.Kafka.есть.двоичный.протокол.(работает.по.TCP),.определяющий.формат.за- просов.и.ответ.на.них.брокеров.как.при.успешной.обработке.запроса,.так.и.при.
    возникновении.ошибок.во.время.обработки..Клиенты.всегда.выступают.в.роли.
    стороны,.инициирующей.подключения.и.отправляющей.запросы,.а.брокер.об- рабатывает.запросы.и.отвечает.на.них..Все.полученные.брокером.от.конкретного.
    клиента.запросы.обрабатываются.в.порядке.поступления..Благодаря.этому.Kafka.
    может.служить.очередью.сообщений.и.гарантировать.упорядоченность.хранимых.
    сообщений.
    Каждый.запрос.имеет.стандартный.заголовок,.включающий:
    ‰
    ‰
    тип.запроса.(называется.также.ключом.API);
    ‰
    ‰
    версию.запроса.(так.что.брокеры.могут.работать.с.клиентами.разных.версий.
    и.отвечать.на.их.запросы.соответствующим.образом);
    ‰
    ‰
    идентификатор.корреляции.—.число,.уникально.идентифицирующее.запрос.
    и.включаемое.также.в.ответ.и.журналы.ошибок.(этот.идентификатор.применя- ется.для.диагностики.и.устранения.неполадок);
    ‰
    ‰
    идентификатор.клиента.—.используется.для.идентификации.отправившего.
    запрос.приложения.
    Мы.не.станем.описывать.этот.протокол,.поскольку.он.подробно.изложен.в.доку- ментации.Kafka.(
    http://kafka.apache.org/protocol.html
    )..Однако.не.помешает.разобрать- ся.с.тем,.как.брокеры.обрабатывают.запросы.—.далее,.когда.мы.будем.обсуждать.

    Обработка запросов 125
    мониторинг.Kafka.и.различные.параметры.конфигурации,.вам.будет.понятнее,.
    к.каким.очередям.и.потокам.выполнения.относятся.показатели.и.параметры.
    конфигурации.
    Для.каждого.порта,.на.котором.брокер.выполняет.прослушивание,.запускается.
    принимающий.поток.(acceptor.thread),.создающий.соединение.и.передающий.
    контроль.над.ним.обрабатывающему.потоку.(processor.thread)..Число.потоков- обработчиков,.также.называемых.сетевыми потоками.(network.threads),.можно.
    задать.в.конфигурации..Сетевые.потоки.отвечают.за.получение.запросов.из.кли- ентских.соединений,.помещение.их.в.очередь запросов.(request.queue),.сбор.ответов.
    из.очереди ответов.(response.queue).и.отправку.их.клиентам..Наглядно.этот.про- цесс.показан.на.рис..5.1.
    Рис. 5.1. Обработка запросов внутри Apache Kafka
    После.помещения.запросов.в.очередь.ответственность.за.их.обработку.передает- ся.потокам ввода/вывода.(IO.threads)..Наиболее.распространенные.типы.за- просов:
    ‰
    ‰
    запросы от производителей —.отправляются.производителями.и.содержат.со- общения,.записываемые.клиентами.в.брокеры.Kafka;
    ‰
    ‰
    запросы на извлечение —.отправляются.потребителями.и.ведомыми.репликами.
    при.чтении.ими.сообщений.от.брокеров.Kafka.
    Как.запросы.от.производителей,.так.и.запросы.на.извлечение.должны.отправляться.
    ведущей.реплике.раздела..Если.брокер.получает.запрос.от.производителя,.отно- сящийся.к.конкретному.разделу,.ведущая.реплика.которого.находится.на.другом.
    брокере,.то.отправивший.запрос.клиент.получит.сообщение.об.ошибке.«Не.является.
    ведущей.репликой.для.раздела».(Not.a.Leader.for.Partition)..Та.же.ошибка.возникнет.

    126 Глава 5 • Внутреннее устройство Kafka при.запросе.на.извлечение.из.конкретного.раздела,.полученном.на.брокере,.на.ко- тором.нет.для.нее.ведущей.реплики..Клиенты.Kafka.отвечают.за.то,.чтобы.запросы.
    производителей.и.запросы.на.извлечение.отправлялись.на.брокер,.содержащий.
    ведущую.реплику.для.соответствующего.запросу.раздела.
    Откуда.клиенты.знают,.куда.им.отправлять.запросы?.Клиенты.Kafka.применяют.
    для.этой.цели.еще.один.вид.запроса,.называемый.запросом метаданных.(metadata.
    request).и.включающий.список.тем,.интересующих.клиента..Ответ.сервера.содер- жит.информацию.о.существующих.в.этих.темах.разделах,.репликах.для.каждого.
    из.разделов,.а.также.ведущей.реплике..Запросы.метаданных.можно.отправлять.
    любому.брокеру,.поскольку.у.каждого.из.них.есть.содержащий.эту.информацию.
    кэш.метаданных.
    Клиенты.обычно.кэшируют.эту.информацию.и.используют.ее.для.направления.
    запросов.производителей.и.запросов.на.извлечение.нужному.брокеру.для.каждого.
    из.разделов..Им.также.приходится.иногда.обновлять.эту.информацию.(интервал.
    обновления.задается.параметром.конфигурации.
    metadata.max.age.ms
    ).посредством.
    отправки.дополнительных.запросов.метаданных.для.выяснения,.не.поменялись.ли.
    метаданные.темы,.например,.не.был.ли.добавлен.еще.один.брокер.и.не.была.ли.
    перенесена.на.него.часть.реплик.(рис..5.2)..Кроме.того,.при.получении.на.один.из.
    запросов.ответа.«Не.является.ведущей.репликой».клиент.обновит.метаданные.
    перед.попыткой.отправить.запрос.повторно,.поскольку.эта.ошибка.указывает.на.
    использование.им.устаревшей.информации.и.отправку.запроса.не.тому.брокеру.
    Рис. 5.2. Маршрутизация запросов клиентов

    Обработка запросов 127
    Запросы от производителей
    Как.мы.уже.видели.в.главе.3,.параметр.конфигурации.
    acks
    .определяет.число.бро- керов,.которые.должны.подтвердить.получение.сообщения,.чтобы.операция.записи.
    считалась.успешной..Можно.настроить.производители.так,.чтобы.они.считали.со- общение.записанным.успешно,.если.его.прием.был.подтвержден.только.ведущей.
    репликой.(
    acks=1
    ),.всеми.согласованными.репликами.(
    acks=all
    ).или.как.только.
    оно.отправлено,.не.дожидаясь.его.приема.брокером.(
    acks=0
    ).
    Брокер,.на.котором.находится.ведущая.реплика.раздела,.при.получении.запроса.
    к.ней.от.производителя.начинает.с.нескольких.проверок.
    ‰
    ‰
    Есть.ли.у.отправляющего.данные.пользователя.права.на.запись.в.эту.тему?
    ‰
    ‰
    Допустимо.ли.указанное.в.запросе.значение.параметра.
    acks
    .(допустимые.зна- чения.
    0
    ,.
    1
    .и.
    all
    )?
    ‰
    ‰
    Если.параметр.
    acks
    .установлен.в.значение.
    all
    ,.достаточно.ли.согласованных.
    реплик.для.безопасной.записи.сообщения?.(Можно.настроить.брокеры.так,.
    чтобы.они.отказывались.принимать.новые.сообщения,.если.число.согласо- ванных.реплик.меньше.заданного.в.конфигурации.значения..Мы.поговорим.
    об.этом.подробнее.в.главе.6,.когда.будем.обсуждать.гарантии.сохраняемости.
    и.надежности.Kafka.)
    Затем.он.записывает.новые.сообщения.на.локальный.диск..На.операционной.
    системе.Linux.сообщения.записываются.в.кэш.файловой.системы,.и.нет.никаких.
    гарантий,.что.они.будут.записаны.на.диск..Kafka.не.ждет.сохранения.данных.на.
    диск.—.сохраняемость.сообщений.обеспечивается.посредством.репликации.
    После.записи.сообщения.на.ведущую.реплику.раздела.брокер.проверяет.значение.
    параметра.
    acks
    ..Если.оно.равно.
    0
    .или.
    1
    ,.брокер.отвечает.сразу.же,.если.же.
    all
    ,.за- прос.хранится.в.буфере-чистилище.(purgatory).до.тех.пор,.пока.ведущая.реплика.
    не.удостоверится,.что.ведомые.реплики.выполнили.репликацию.сообщения..Затем.
    клиенту.будет.отправлен.ответ.
    Запросы на извлечение
    Брокеры.обрабатывают.запросы.на.извлечение.примерно.так.же,.как.и.запросы.
    от.производителей..Клиент.посылает.запрос,.в.котором.просит.брокер.отправить.
    сообщения.в.соответствии.со.списком.тем,.разделов.и.смещений,.—.что-то.вроде.
    «Пожалуйста,.отправьте.мне.сообщения,.начинающиеся.со.смещения.53.раздела.0.
    темы.Test,.и.сообщения,.начинающиеся.со.смещения.64.раздела.3.темы.Test»..Кли- енты.также.указывают.ограничения.на.объем.возвращаемых.из.каждого.раздела.
    данных..Это.ограничение.важно,.потому.что.клиентам.требуется.выделять.память.
    под.ответ.брокера..Без.него.отправляемые.брокерами.ответы.могли.бы.оказаться.
    настолько.велики,.что.клиентам.не.хватило.бы.памяти.

    1   ...   11   12   13   14   15   16   17   18   ...   39


    написать администратору сайта