From 44891f1238d3cf4e5ff1f95fe7fc9347dce0d46f Mon Sep 17 00:00:00 2001 From: Struchkov Mark Date: Mon, 26 Aug 2024 13:32:54 +0300 Subject: [PATCH] vault backup: 2024-08-26 13:32:54 --- .obsidian/plugins/home-tab/data.json | 4 ++-- _inbox/Consumer Group.md | 2 +- _inbox/Kafka Topic Partition.md | 9 ++++++++- meta/files/Pasted image 20240826133001.png | Bin 0 -> 396703 bytes meta/files/Pasted image 20240826133128.png | Bin 0 -> 673439 bytes 5 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 meta/files/Pasted image 20240826133001.png create mode 100644 meta/files/Pasted image 20240826133128.png diff --git a/.obsidian/plugins/home-tab/data.json b/.obsidian/plugins/home-tab/data.json index ab1190bf..0967a0d7 100644 --- a/.obsidian/plugins/home-tab/data.json +++ b/.obsidian/plugins/home-tab/data.json @@ -25,11 +25,11 @@ "recentFilesStore": [ { "filepath": "_inbox/Kafka Topic Partition.md", - "timestamp": 1724668068064 + "timestamp": 1724668117126 }, { "filepath": "_inbox/Consumer Group.md", - "timestamp": 1724668060321 + "timestamp": 1724668093407 }, { "filepath": "_inbox/Kafka Topic.md", diff --git a/_inbox/Consumer Group.md b/_inbox/Consumer Group.md index 49ce3893..f49ea29d 100644 --- a/_inbox/Consumer Group.md +++ b/_inbox/Consumer Group.md @@ -11,7 +11,7 @@ linked: --- Consumer Group позволяет распределить сообщения в топике между различными консьюмерами. Тем самым распределив нагрузку между репликами. -Этот механизм работает на базе партиций топика. В идеале создавать количество партиций равное количеству консьюмеров в группе. Если создать меньше, то часть консьюмеров будет простаивать не выполняя полезную работу, если создать больше, то некоторые консьюмеры возьмут на себя обработку сразу нескольких партиций, то есть нагрузка будет распространена не равномерно. +Этот механизм работает на базе [партиций](Kafka%20Topic%20Partition.md) топика. В идеале создавать количество партиций равное количеству консьюмеров в группе. ==Если создать меньше, то часть консьюмеров будет простаивать не выполняя полезную работу, если создать больше, то некоторые консьюмеры возьмут на себя обработку сразу нескольких партиций, то есть нагрузка будет распространена не равномерно.== Внутри консьюмер группы из одного Pratition может читать только один consumer. Но consumer может читать несколько Pratition одного и того же топика. Но можно создать несколько consumer group для одного и того же топика. diff --git a/_inbox/Kafka Topic Partition.md b/_inbox/Kafka Topic Partition.md index a7f22c4a..5dda6883 100644 --- a/_inbox/Kafka Topic Partition.md +++ b/_inbox/Kafka Topic Partition.md @@ -13,4 +13,11 @@ zero-link: parents: linked: --- -Разбиение на партиции позволяет реализовывать [Горизонтальное масштабирование](Горизонтальное%20масштабирование.md) с использованием [Consumer Group](Consumer%20Group.md). \ No newline at end of file +[Topic](Kafka%20Topic.md) можно разбить на Partitions. Partition может хранится на разных брокерах кластера. + +![500](Pasted%20image%2020240826133001.png) + +Сообщения могут записываться в разные партиции. +![](Pasted%20image%2020240826133128.png) + +Это позволяет реализовывать [Горизонтальное масштабирование](Горизонтальное%20масштабирование.md) с использованием [Consumer Group](Consumer%20Group.md). \ No newline at end of file diff --git a/meta/files/Pasted image 20240826133001.png b/meta/files/Pasted image 20240826133001.png new file mode 100644 index 0000000000000000000000000000000000000000..cea051fd5183e76f1d7dc72c210dbe7a8f8c4aa2 GIT binary patch literal 396703 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