Apache Kafka. Потоковая обработка и анализ данных. Apache Kafka. Потоковая обработка и анализ данныхСерия Бестселлеры OReilly
Скачать 7.59 Mb.
|
Ния Нархид, Гвен Шапира, Тодд Палино Apache Kafka. Потоковая обработка и анализ данных Серия «Бестселлеры O’Reilly» Перевел с английского И. Пальти Заведующая редакцией Ю. Сергиенко Руководитель проекта О. Сивченко Ведущий редактор Н. Гринчик Литературный редактор Н. Рощина Художественный редактор С. Заматевская Корректоры О. Андриевич, Е. Рафалюк-Бузовская Верстка Г. Блинов ББК 32.973.23 УДК 004.3 Нархид Ния, Шапира Гвен, Палино Тодд Н30 Apache Kafka. Потоковая обработка и анализ данных. — СПб.: Питер, 2019. — 320 с.: ил. — (Серия «Бестселлеры O’Reilly»). ISBN 978-5-4461-0575-5 При работе любого enterprise-приложения образуются данные: это файлы логов, метрики, информация об активности пользователей, исходящие сообщения и т. п. Правильные манипуляции над всеми этими дан- ными не менее важны, чем сами данные. Если вы — архитектор, разработчик или выпускающий инженер, желающий решать подобные проблемы, но пока не знакомы с Apache Kafka, то именно из этой замечательной книги вы узнаете, как работать с этой свободной потоковой платформой, позволяющей обрабатывать очереди данных в реальном времени. 16+ (В соответствии с Федеральным законом от 29 декабря 2010 г. № 436-ФЗ.) ISBN 978-1491936160 англ. Authorized Russian translation of the English edition Kafka: The Definitive Guide ISBN 9781491936160 © 2017 Neha Narkhede, Gwen Shapira, Todd Palino This translation is published and sold by permission of O’Reilly Media, Inc., which owns or controls all rights to publish and sell the same ISBN 978-5-4461-0575-5 © Перевод на русский язык ООО Издательство «Питер», 2019 © Издание на русском языке, оформление ООО Издательство «Питер», 2019 © Серия «Бестселлеры O’Reilly», 2019 Права на издание получены по соглашению с O’Reilly. Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав. Информация, содержащаяся в данной книге, получена из источников, рассматриваемых издательством как на- дежные. Тем не менее, имея в виду возможные человеческие или технические ошибки, издательство не может гарантировать абсолютную точность и полноту приводимых сведений и не несет ответственности за возможные ошибки, связанные с использованием книги. Издательство не несет ответственности за доступность материалов, ссылки на которые вы можете найти в этой книге. На момент подготовки книги к изданию все ссылки на интернет- ресурсы были действующими. Изготовлено в России. Изготовитель: ООО «Прогресс книга». Место нахождения и фактический адрес: 194044, Россия, г. Санкт-Петербург, Б. Сампсониевский пр., д. 29А, пом. 52. Тел.: +78127037373. Дата изготовления: 08.2018. Наименование: книжная продукция. Срок годности: не ограничен. Налоговая льгота — общероссийский классификатор продукции ОК 034-2014, 58.11.12 — Книги печатные профессиональные, технические и научные. Импортер в Беларусь: ООО «ПИТЕР М», 220020, РБ, г. Минск, ул. Тимирязева, д. 121/3, к. 214, тел./факс: 208 80 01. Подписано в печать 25.07.18. Формат 70×100/16. Бумага офсетная. Усл. п. л. 25,800. Тираж 700. Заказ 0000. Отпечатано в ОАО «Первая Образцовая типография». Филиал «Чеховский Печатный Двор». 142300, Московская область, г. Чехов, ул. Полиграфистов, 1. Сайт: www.chpk.ru. E-mail: marketing@chpk.ru Факс: 8(496) 726-54-10, телефон: (495) 988-63-87 Краткое содержание Предисловие........................................................................................................................................... 15 Введение................................................................................................................................................... 18 Глава 1..Знакомьтесь:.Kafka.............................................................................................................. 22 Глава 2..Установка.Kafka................................................................................................................... 42 Глава 3..Производители.Kafka:.запись.сообщений.в.Kafka................................................... 65 Глава 4..Потребители.Kafka:.чтение.данных.из.Kafka............................................................. 88 Глава 5. Внутреннее.устройство.Kafka.......................................................................................120 Глава 6..Надежная.доставка.данных............................................................................................140 Глава 7..Создание.конвейеров.данных........................................................................................161 Глава 8..Зеркальное.копирование.между.кластерами...........................................................184 Глава 9..Администрирование.Kafka.............................................................................................213 Глава 10..Мониторинг.Kafka..........................................................................................................243 Глава 11..Потоковая.обработка.....................................................................................................278 Приложение..Установка.Kafka.на.других.операционных.системах.................................315 Оглавление Предисловие........................................................................................................................................... 15 Введение................................................................................................................................................... 18 Для.кого.предназначена.эта.книга............................................................................................ 19 Условные.обозначения................................................................................................................. 19 Использование.примеров.кода.................................................................................................. 20 Благодарности................................................................................................................................. 21 Глава 1..Знакомьтесь:.Kafka.............................................................................................................. 22 Обмен.сообщениями.по.типу.«публикация/подписка»................................................... 22 С.чего.все.начинается............................................................................................................. 23 Отдельные.системы.организации.очередей................................................................... 26 Открываем.для.себя.систему.Kafka......................................................................................... 26 Сообщения.и.пакеты............................................................................................................... 26 Схемы........................................................................................................................................... 28 Темы.и.разделы......................................................................................................................... 28 Производители.и.потребители............................................................................................ 29 Брокеры.и.кластеры................................................................................................................ 31 Несколько.кластеров.............................................................................................................. 32 Почему.Kafka?................................................................................................................................. 34 Несколько.производителей.................................................................................................. 34 Несколько.потребителей....................................................................................................... 34 Сохранение.информации.на.диске.................................................................................... 34 Масштабируемость.................................................................................................................. 35 Высокое.быстродействие...................................................................................................... 35 Экосистема.данных........................................................................................................................ 35 Сценарии.использования...................................................................................................... 36 Оглавление 7 История.создания.Kafka.............................................................................................................. 38 Проблема.LinkedIn.................................................................................................................. 38 Рождение.Kafka........................................................................................................................ 40 Открытый.исходный.код....................................................................................................... 40 Название..................................................................................................................................... 41 Приступаем.к.работе.с.Kafka...................................................................................................... 41 Глава 2..Установка.Kafka................................................................................................................... 42 Обо.всем.по.порядку..................................................................................................................... 42 Выбрать.операционную.систему........................................................................................ 42 Установить.Java........................................................................................................................ 42 Установить.ZooKeeper........................................................................................................... 43 Установка.брокера.Kafka............................................................................................................. 45 Конфигурация.брокера................................................................................................................ 46 Основные.настройки.брокера.............................................................................................. 47 Настройки.тем.по.умолчанию............................................................................................. 49 Выбор.аппаратного.обеспечения.............................................................................................. 53 Пропускная.способность.дисков........................................................................................ 54 Емкость.диска........................................................................................................................... 54 Память......................................................................................................................................... 55 Передача.данных.по.сети....................................................................................................... 55 CPU............................................................................................................................................... 55 Kafka.в.облачной.среде................................................................................................................. 56 Кластеры.Kafka............................................................................................................................... 56 Сколько.должно.быть.брокеров?....................................................................................... 57 Конфигурация.брокеров....................................................................................................... 58 Тонкая.настройка.операционной.системы..................................................................... 58 Промышленная.эксплуатация................................................................................................... 61 Параметры.сборки.мусора.................................................................................................... 61 Планировка.ЦОД..................................................................................................................... 62 Размещение.приложений.на.ZooKeeper.......................................................................... 63 Резюме................................................................................................................................................ 64 Глава 3..Производители.Kafka:.запись.сообщений.в.Kafka................................................... 65 Обзор.производителя.................................................................................................................... 66 Создание.производителя.Kafka................................................................................................. 68 Отправка.сообщения.в.Kafka..................................................................................................... 70 8 Оглавление Синхронная.отправка.сообщения...................................................................................... 71 Асинхронная.отправка.сообщения.................................................................................... 71 Настройка.производителей........................................................................................................ 72 acks................................................................................................................................................ 73 buffer.memory............................................................................................................................. 73 compression.type........................................................................................................................ 74 retries............................................................................................................................................ 74 batch.size...................................................................................................................................... 75 linger.ms....................................................................................................................................... 75 client.id......................................................................................................................................... 75 max.in.flight.requests.per.connection................................................................................... 75 timeout.ms,.request.timeout.ms.и.metadata.fetch.timeout.ms....................................... 76 max.block.ms............................................................................................................................... 76 max.request.size.......................................................................................................................... 76 receive.buffer.bytes.и.send.buffer.bytes............................................................................... 76 Сериализаторы................................................................................................................................ 77 Пользовательские.сериализаторы..................................................................................... 77 Сериализация.с.помощью.Apache.Avro........................................................................... 79 Использование.записей.Avro.с.Kafka............................................................................... 81 Разделы.............................................................................................................................................. 84 Старые.API.производителей...................................................................................................... 86 Резюме................................................................................................................................................ 87 Глава 4..Потребители.Kafka:.чтение.данных.из.Kafka............................................................. 88 Принципы.работы.потребителей.Kafka.................................................................................. 88 Потребители.и.группы.потребителей............................................................................... 88 Группы.потребителей.и.перебалансировка.разделов.................................................. 92 Создание.потребителя.Kafka...................................................................................................... 94 Подписка.на.темы........................................................................................................................... 94 Цикл.опроса...................................................................................................................................... 95 Настройка.потребителей............................................................................................................. 97 fetch.min.bytes............................................................................................................................ 97 fetch.max.wait.ms....................................................................................................................... 97 max.partition.fetch.bytes......................................................................................................... 98 session.timeout.ms..................................................................................................................... 98 auto.offset.reset........................................................................................................................... 99 enable.auto.commit.................................................................................................................... 99 Оглавление 9 partition.assignment.strategy................................................................................................. 99 client.id.......................................................................................................................................100 max.poll.records........................................................................................................................100 receive.buffer.bytes.и.send.buffer.bytes.............................................................................100 Фиксация.и.смещения................................................................................................................101 Автоматическая.фиксация.................................................................................................102 Фиксация.текущего.смещения..........................................................................................103 Асинхронная.фиксация.......................................................................................................104 Сочетание.асинхронной.и.синхронной.фиксации.....................................................105 Фиксация.заданного.смещения........................................................................................106 Прослушивание.на.предмет.перебалансировки................................................................107 Получение.записей.с.заданными.смещениями..................................................................109 Выход.из.цикла.............................................................................................................................112 Десериализаторы..........................................................................................................................113 Пользовательские.сериализаторы...................................................................................114 Использование.десериализации.Avro.в.потребителе.Kafka...................................116 Автономный.потребитель:.зачем.и.как.использовать.потребитель.без.группы.....117 Старые.API.потребителей.........................................................................................................118 Резюме..............................................................................................................................................119 |