Общее описание
Книга объёмом в 320 страниц, состоящая из 11 глав. Помимо текстового представления, в книге присутствует немало графической информации в виде схем и диаграмм, есть также и вставки программного кода. Уровень сложности — средний. Каждая глава подкреплена небольшим резюме в виде саммари из нескольких предложений.
Краткий обзор
Первые две главы можно считать вводными. В первой происходит знакомство с Kafka: принцип работы публикации/подписки, определение ниши и сфер применения Kafka. Во второй главе речь идёт об установке Kafka. Всё рассмотрено достаточно подробно — от выбора ОС и установки ZooKeeper до требований по памяти, диску, сети и процессору. Только эти две вводные главы заняли порядка 20% всей книги.
Если уж Kafka построена по принципу публикации/подписки, то вполне логично, что именно производители и потребители будут рассмотрены сразу после установки. Именно об этом и идут две следующие главы. Сложно однозначно идентифицировать, насколько глубоко разобраны эти темы, так как не являюсь большим экспертом по Kafka, тем не менее могу отметить некоторые темы, которые были затронуты: создание и конфигурирование потребителя и производителя, синхронная и асинхронная отправка сообщений, сериализация, гарантии доставки, работа со смещением.
Следующая глава посвящена более глубокому погружению в детали архитектуры. Обсуждаются механизмы репликации, работа с индексами, обработка отказов и многое другое.
Затем идёт глава о надёжности доставки данных. Рассматриваются принципы ACID, а также большая часть главы посвящена репликации и различным вариантам конфигураций при её настройке.
Следом — глава про создание конвейеров данных. Сначала она начинается с рассуждений о том, какие требования надо предъявлять к системам, а далее рассмотрены Kafka Connect, работа с данными из MySQL, Elasticsearch и пара слов об альтернативах Kafka Connect.
Следующая глава посвящена возможностям репликации между разными Kafka-кластерами с использованием MirrorMaker. Рассматриваются сценарии миграции, бэкапа и обеспечения отказоустойчивости на уровне геораспределения.
Далее идут две главы — об администрировании и мониторинге Kafka. Подробно останавливаться на них нет смысла, кому нужно — сам посмотрит. В целом лишь отмечу, что главы показались не скучными и несложными.
Ну и наконец, последняя глава посвящена потоковой обработке данных — здесь рассмотрены основы Kafka Streams и построение приложений для обработки данных в реальном времени.
Мнение
Неплохая книга про Kafka. Даже с учётом того, что я не работал с ней до прочтения, материал был вполне понятен и информативен. Многие вещи, к сожалению, без опыта использования подзабываются, однако в какой-то степени сделанный ранее конспект помогает всё быстро освежить. Если вы бэкенд-программист и в планах у вас продолжать расти как специалист, то я бы рекомендовал эту книгу к прочтению, даже если вы уже знакомы с другим брокером сообщений.