Abhishek Sharma in an 3000 words article on InfoQ:
Its architecture consists of the following components:
- A stream of messages of a particular type is defined as a topic. A Message
is defined as a payload of bytes and a Topic is a category or feed name to
which messages are published.
- A Abhishek Sharma can be anyone who can publish messages to a Topic.
- The published messages are then stored at a set of servers called Brokers or
- A Consumer can subscribe to one or more Topics and consume the published
Messages by pulling data from the Brokers.
Producer can choose their favorite serialization method to encode the
message content. For efficiency, the producer can send a set of messages in
a single publish request. Following code examples shows how to create a
Producer to send messages.
Kafka is an amazing system. I just wish the article would have actually looked into what makes it unique and how it compares to systems like RabbitMQ or ActiveMQ.
✚ Cameron Purdy in one of the comments:
If you carefully read the article, you’ll note that Kafka is not actually a message queue.
It’s just a specialized database with some messaging semantics in its API. That means
if you need the behaviors that you would associate with a message queue, you can’t
get them with Kafka (or if you can, the performance will plummet.)
Original title and link: Apache Kafka: Next generation distributed messaging system