From 3e4bf99a2f18aed6af5f68b7964f6d508bf1fc63 Mon Sep 17 00:00:00 2001 From: tbedford Date: Thu, 2 May 2024 15:45:30 +0100 Subject: [PATCH 1/3] [add] - more conceptual material --- docs/get-started/streaming.md | 18 ++++++++++++++++++ docs/images/messages-topic-partitions.png | Bin 0 -> 104326 bytes 2 files changed, 18 insertions(+) create mode 100644 docs/images/messages-topic-partitions.png diff --git a/docs/get-started/streaming.md b/docs/get-started/streaming.md index 6f5fb77c..16138e9f 100644 --- a/docs/get-started/streaming.md +++ b/docs/get-started/streaming.md @@ -6,4 +6,22 @@ In streaming, it is important to understand the following terms: * **Quix producer** - In Quix, a producer publishes data to a Kafka topic. The data is typically thought of as packaged in a message, each message containing one or more events. * **Quix consumer** - A consumer subscribes to a topic, and typically processes the data it receives from that topic, depending on the use case. +More detail on these is provided in the following sections. + +## Topics + +Topics provide the conduits for data flow in Kafka-based solutions. When you [create a topic](../create/create-topic.md) you can specify important parameters such as the number of partitions in the topic. For an analogy, if you imagine the topic as a motorway, then partitions are the lanes. Clients can publish messages using a key (also known as a stream ID). The messages are divided among the partitions by the message key. For example, if you had two partitions, and three clients (producers) using different keys such as `server-1-cpu`, `server-2-cpu`, and `server-3-cpu`, then messages from client 1 would most likely be sent to partition 0, and clients 2 and 3 messages would be routed to partition 1. You can see the partitions being used in the Quix Cloud topic explorer, as illustrated by the following screenshot: + +![Partitions](../images/messages-topic-partitions.png) + +Note that all messages of a particular key (stream ID) will be published to the same partition. You would never have, using this example, `server-1-cpu` messages on partition 1, they are always just on partition 0, and similarly, you'd only have `server-2-cpu` and `server-3-cpu` messages on partition 1. This approach guarantees that messages arrive in order. + +## Producer + +Producers publish messages to a topic. When you publish a message you can also provide a key. The key is used to divide messages among available partitions. Messages of a specific key are always routed to the same partition. + +## Consumer + +A consumer subscribes to a topic and then consumes all messages in that topic. You can organize consumers into consumer groups. In a consumer group each consumer will process the messages from partitions allocated to it by Kafka. For example, if you had two partitions in a topic, and two consumers in a consumer group, then the first consumer would process messages from one partition, and the second would consume messages from the other partition. If you had three partitions and two consumers, then one consumer would be allocated one partition, and the other two. Using consumer groups enables you to perform horizontal scaling of your processing. + [Read more about Quix](../kb/what-is-quix.md). diff --git a/docs/images/messages-topic-partitions.png b/docs/images/messages-topic-partitions.png new file mode 100644 index 0000000000000000000000000000000000000000..257b0dc3e70c846ec5c4b913c792c1d11fbcdc4d GIT binary patch literal 104326 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 Date: Thu, 2 May 2024 16:13:14 +0100 Subject: [PATCH 2/3] [fix] - improve clarity --- docs/get-started/streaming.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/get-started/streaming.md b/docs/get-started/streaming.md index 16138e9f..bc6e857f 100644 --- a/docs/get-started/streaming.md +++ b/docs/get-started/streaming.md @@ -8,7 +8,7 @@ In streaming, it is important to understand the following terms: More detail on these is provided in the following sections. -## Topics +## Topic Topics provide the conduits for data flow in Kafka-based solutions. When you [create a topic](../create/create-topic.md) you can specify important parameters such as the number of partitions in the topic. For an analogy, if you imagine the topic as a motorway, then partitions are the lanes. Clients can publish messages using a key (also known as a stream ID). The messages are divided among the partitions by the message key. For example, if you had two partitions, and three clients (producers) using different keys such as `server-1-cpu`, `server-2-cpu`, and `server-3-cpu`, then messages from client 1 would most likely be sent to partition 0, and clients 2 and 3 messages would be routed to partition 1. You can see the partitions being used in the Quix Cloud topic explorer, as illustrated by the following screenshot: @@ -22,6 +22,6 @@ Producers publish messages to a topic. When you publish a message you can also p ## Consumer -A consumer subscribes to a topic and then consumes all messages in that topic. You can organize consumers into consumer groups. In a consumer group each consumer will process the messages from partitions allocated to it by Kafka. For example, if you had two partitions in a topic, and two consumers in a consumer group, then the first consumer would process messages from one partition, and the second would consume messages from the other partition. If you had three partitions and two consumers, then one consumer would be allocated one partition, and the other two. Using consumer groups enables you to perform horizontal scaling of your processing. +A consumer subscribes to a topic and then consumes all messages in that topic. You can organize consumers into consumer groups. In a consumer group each consumer will process the messages from partitions allocated to it by Kafka. For example, if you had two partitions in a topic, and two consumers in a consumer group, then the first consumer would process messages from one partition, and the second would consume messages from the other partition. If you had three partitions and two consumers, then one consumer would be allocated one partition, and the other consumer would be allocated two. Using consumer groups enables you to perform horizontal scaling of your processing. [Read more about Quix](../kb/what-is-quix.md). From 746a11aa5497fd11e70249bfe2d8afe3edc3c375 Mon Sep 17 00:00:00 2001 From: tbedford Date: Thu, 2 May 2024 16:50:02 +0100 Subject: [PATCH 3/3] [add] - note on reducing the number of partitions --- docs/create/create-topic.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/create/create-topic.md b/docs/create/create-topic.md index 67ee04a2..cc1c7869 100644 --- a/docs/create/create-topic.md +++ b/docs/create/create-topic.md @@ -21,7 +21,7 @@ The parameters in the `Advanced settings` panel are as follows: | Parameter | Description | |---|---| -| Partitions | The basic unit of paralellism in a Kafka topic. The more partitions the more messages can be processed concurrently. You can think of partitions in Kafka topics as lanes on a motorway. Each partition acts as an independent lane where messages (like vehicles) flow in an ordered sequence.

Just like lanes on a motorway, partitions enable parallel processing of messages within a Kafka topic. Multiple consumers (or subscribers) can each read from their own partition concurrently, enabling efficient and scalable message processing.

Additionally, partitions provide fault tolerance similar to lanes providing redundancy on a motorway. If one lane (partition) becomes congested or experiences issues, the others can continue operating independently without affecting the overall flow of traffic (messages) on the motorway (topic). **Default = 1** | +| Partitions | The basic unit of paralellism in a Kafka topic. The more partitions the more messages can be processed concurrently. You can think of partitions in Kafka topics as lanes on a motorway. Each partition acts as an independent lane where messages (like vehicles) flow in an ordered sequence.

Just like lanes on a motorway, partitions enable parallel processing of messages within a Kafka topic. Multiple consumers (or subscribers) can each read from their own partition concurrently, enabling efficient and scalable message processing.

Additionally, partitions provide fault tolerance similar to lanes providing redundancy on a motorway. If one lane (partition) becomes congested or experiences issues, the others can continue operating independently without affecting the overall flow of traffic (messages) on the motorway (topic).

Note, you can't reduce the number of partitions, but you can increase them using the edit topic menu in Quix Cloud. If you need to reduce the number of partitions, you'd have to delete the topic and create it again, with the required number of partitions. **Default = 1** | | Retention time (hours) | Messages are retained in the topic for this amount of time, regardless of whether they have been consumed or not. After the specified time period elapses, Kafka will automatically delete messages older than the retention period. **Default = 24** | | Retention size (MB) | Messages are retained in the topic until the topic reaches this size. Once the topic size exceeds this threshold, Kafka starts deleting the oldest messages to make space for new ones. **Default = 50** |