Once, when I picked up a book from the local library, the librarian asked to tell her what I thought about the book when I would bring it back. Well, why not write a few lines about all the books I read so everybody could see what I thought about it? I'm often also happy to have friends recommend a certain book or tell me this and that is not really worth reading. I won't comment about the tons of books I have read so far, but about books I read from now on.
highly recommended | sehr empfohlen | |
good reading | gutes lesematerial | |
average | durchschnittlich | |
not too interesting | nicht allzu interessant | |
recommended not to read it | empfehlung das buch nicht zu lesen |
![]() |
|
---|---|
title | Kafka: The Definitive Guide |
author | Neha Narkhede, Gwen Shapira, Todd Palino |
ISBN-10 | 1-491-93616-9 |
ISBN-13 | 978-1-491-93616-0 |
ASIN | |
rating | |
date | 2018-Jun-14 |
This guide walks you through Kafka whether you are a system administrator who needs to keep the installation running or a developer who needs to make an application to talk to Kafka. Albeit the for the latter it probably is much easier if you are developing in Java.
And at first it may also be a bit difficult to follow along the examples, be it due to badly formatted code samples (what should be part of the command and what not?) or because with a slightly different version of Kafka you might need to read through error messages to find out what to change to make the sample work.
There are also some things which are plain wrong. A network interface which is 80% utilized does not necessarily mean you need an additional machine for connecting more clients; it depends on what exactly is using those 80%.
On the plus side, the book gives lots of good advice for performance tuning, sending data, pulling data, layout of the system etc. The recommendations come with explanations and are not limited to Kafka tuning, but include also OS parameters, application design etc. There are so many pitfalls taken into consideration, that it sometimes sounds a bit pessimistic and you almost start to wonder "what is Kafka good for". But the considerations are good and heeding the warnings will definitely keep you from having to make your own painful discoveries. It definitely shows that the authors very well know what they are writing about and have seen Kafka in operation in various environments.
The book starts out with an explanation of what Kafka is, what it does and where it has its advantages over other solutions. The next chapter goes through the installation, including recommendations on selecting hardware. After this follow explanations on how to write and read data to/from Kafka, before going through the internals. How to build reliable data delivery systems, data pipelines and do data mirroring is explained in the next three chapters, before turning to administration and monitoring. The last chapter has a good introduction to processing data as streams.
You can read this book to learn what Kafka is, you can read it to get information on how to design, setup, administer and monitor a Kafka installation and you can also learn how to talk to Kafka from your application, albeit all the examples are in Java. But be prepared to see a lot of detail information, many settings and a lot of passages explaining what could go wrong.