From dd6e1ceb5ec6d40e2e19b9e82774cf1e1be78eec Mon Sep 17 00:00:00 2001 From: Eugene Pobedinsky Date: Fri, 9 Aug 2024 21:40:23 +0300 Subject: [PATCH 1/5] =?UTF-8?q?=D0=9E=D1=82=D0=B2=D0=B5=D1=82=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=B2=D0=BE=D0=BF=D1=80=D0=BE=D1=81=20=D0=BA=D0=B0?= =?UTF-8?q?=D0=BA=20=D0=BE=D1=82=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D1=8F=D1=82?= =?UTF-8?q?=D1=8C=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=B2=20=D0=BE=D0=B4=D0=BD=D1=83=20=D0=BF=D0=B0=D1=80=D1=82?= =?UTF-8?q?=D0=B8=D1=86=D0=B8=D1=8E=20Kafka?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 661f81b..f21ba55 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ https://www.youtube.com/watch?v=Y1eSeEJDses вебинар по обзору н 15. Сериализация, Десериализация 16. Стратегии выбора партиции продюссером 17. Можно ли из топика (распределен по 3 партициям) прочитать сообщения в том же порядке, в котором они были записаны? Почему? -18. Как сделать так, чтобы все сообщения по одному клиенту попали в одну партицию? +18. Как сделать так, чтобы все сообщения по одному клиенту попали в одну партицию? --> Отправлять с одним ключом 19. Timestamp 20. Headers 21. Batch size. Linger time From 472205d74589d380919e380cd9b2d29a0394e019 Mon Sep 17 00:00:00 2001 From: Eugene Pobedinsky Date: Sun, 11 Aug 2024 11:57:50 +0300 Subject: [PATCH 2/5] =?UTF-8?q?=D0=9E=D1=82=D0=B2=D0=B5=D1=82=D1=8B=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=B2=D0=BE=D0=BF=D1=80=D0=BE=D1=81=D1=8B=20?= =?UTF-8?q?=D0=BF=D0=BE=20Kafka?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index f21ba55..c7ecf66 100644 --- a/README.md +++ b/README.md @@ -57,16 +57,18 @@ https://www.youtube.com/watch?v=Y1eSeEJDses вебинар по обзору н # Producer 13. Producer. Из каких шагов состоит инцициализация -14. Стратегии коммитинга. Гарантия доставки +14. Стратегии коммитинга. Гарантия доставки --> задаем при отправки от сколько реплик хотим получить подтверждение acks=all 15. Сериализация, Десериализация -16. Стратегии выбора партиции продюссером -17. Можно ли из топика (распределен по 3 партициям) прочитать сообщения в том же порядке, в котором они были записаны? Почему? +16. Стратегии выбора партиции продюссером --> по одному ключу в одну партицию, без или разные Round-Robin +17. Можно ли из топика (распределен по 3 партициям) прочитать сообщения в том же порядке, в котором они были записаны? Почему? --> нет, порядок гарантирован только в рамках 1-ой партиции 18. Как сделать так, чтобы все сообщения по одному клиенту попали в одну партицию? --> Отправлять с одним ключом 19. Timestamp 20. Headers -21. Batch size. Linger time -22. Retry +21. Batch size. Linger time --> размер буфера для отправки и время его заполнения batch.size, linger.ms +22. Retry --> сколько раз пытаемся получить ack от Kafka, retries, retries.backoff.ms # Consumer +23 Как один consumer читает из нескольких партиций --> поочередно сначала из одной, потом из следующей и т.д. +24 Если consumer не смог обработать сообщение --> он может только # Docker, Kubernetes, OpenShift. 1. Контейнеризация From 41ee0ce439ab92bda7871b2d61286c05f1c8d3df Mon Sep 17 00:00:00 2001 From: Eugene Pobedinsky Date: Sun, 11 Aug 2024 12:44:05 +0300 Subject: [PATCH 3/5] =?UTF-8?q?=D0=9E=D1=82=D0=B2=D0=B5=D1=82=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=B2=D0=BE=D0=BF=D1=80=D0=BE=D1=81=20=D0=BF=D0=BE=20?= =?UTF-8?q?Zk=20=D0=B4=D0=BB=D1=8F=20Kafka?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c7ecf66..0841628 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ https://www.youtube.com/watch?v=Y1eSeEJDses вебинар по обзору н 4. Основные сущности Kafka # Kafka Cluster. Zookeaper -5. Zookeper. Хранение метаданных кластера +5. Zookeper. Хранение метаданных кластера --> Zk - это распределенная система, хранящая инфу о топиках, партициях, брокерах, топиках с оффсетами. Через нее осуществляется интеграция нод в кластер (по средствам connection string к Zk прописанному в пропертях нод Kafka), выборка лидера в каждой партиции. В свою очередь сама является высокодопустопным кластерным решением с поддержкой репликации. Начиная с некоторой версии (TODO какой ?) эти функции выполняет сама kafka 6. Kafka кластер. Устройство 7. Партиционирование. Leader партиция. 8. Репликация From 5d5a860e0d7d0fecdca41464a7d5e2465762fe17 Mon Sep 17 00:00:00 2001 From: Eugene Pobedinsky Date: Sun, 11 Aug 2024 13:12:27 +0300 Subject: [PATCH 4/5] =?UTF-8?q?=D0=9E=D1=82=D0=B2=D0=B5=D1=82=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=B2=D0=BE=D0=BF=D1=80=D0=BE=D1=81=20=D0=BF=D0=BE=20?= =?UTF-8?q?=D0=BD=D0=B0=D1=81=D1=82=D1=80=D0=BE=D0=B9=D0=BA=D0=B0=D0=BC=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20Kafka?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0841628..3aa58a6 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ https://www.youtube.com/watch?v=Y1eSeEJDses вебинар по обзору н 6. Kafka кластер. Устройство 7. Партиционирование. Leader партиция. 8. Репликация -9. Настройка Kafka кластера для корректной работы партиционирования и репликации +9. Настройка Kafka кластера для корректной работы партиционирования и репликации --> количесво партиций зависит от скорости обработки (количества обработчиков - consumer), на всякий случай лучше иметь 3 - 4 чтоб можно было быстро вводить новые, репликия N - число серверов для кворума, значит число реплик = N*2 - 1. Например, 3 реплики для кворума = 5 (1 выходит из строя, 1 для чего-нибудь перезапускаем) 10. Устройство файлового хранилища Kafka 11. TTL From 7f7421bc9db1640c2b2ac6edb74c3d6a80cffc25 Mon Sep 17 00:00:00 2001 From: Eugene Pobedinsky Date: Sat, 31 Aug 2024 17:21:58 +0300 Subject: [PATCH 5/5] Update README.md --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 3aa58a6..3e4b46e 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ https://www.youtube.com/watch?v=Y1eSeEJDses вебинар по обзору н 4. Основные сущности Kafka # Kafka Cluster. Zookeaper -5. Zookeper. Хранение метаданных кластера --> Zk - это распределенная система, хранящая инфу о топиках, партициях, брокерах, топиках с оффсетами. Через нее осуществляется интеграция нод в кластер (по средствам connection string к Zk прописанному в пропертях нод Kafka), выборка лидера в каждой партиции. В свою очередь сама является высокодопустопным кластерным решением с поддержкой репликации. Начиная с некоторой версии (TODO какой ?) эти функции выполняет сама kafka +5. Zookeper. Хранение метаданных кластера --> Zk - это распределенная система, хранящая инфу о топиках, партициях, брокерах, топиках с оффсетами. Через нее осуществляется интеграция нод в кластер (по средствам connection string к Zk прописанному в пропертях нод Kafka), выборка лидера в каждой партиции. В свою очередь сама является высокодопустопным кластерным решением с поддержкой репликации (master-slaves). Начиная с некоторой версии (TODO какой ?) эти функции МОЖЕТ выполнять сама kafka 6. Kafka кластер. Устройство 7. Партиционирование. Leader партиция. 8. Репликация @@ -59,16 +59,16 @@ https://www.youtube.com/watch?v=Y1eSeEJDses вебинар по обзору н 13. Producer. Из каких шагов состоит инцициализация 14. Стратегии коммитинга. Гарантия доставки --> задаем при отправки от сколько реплик хотим получить подтверждение acks=all 15. Сериализация, Десериализация -16. Стратегии выбора партиции продюссером --> по одному ключу в одну партицию, без или разные Round-Robin +16. Стратегии выбора партиции продюссером --> по одному ключу в одну партицию, без или разные - Round-Robin 17. Можно ли из топика (распределен по 3 партициям) прочитать сообщения в том же порядке, в котором они были записаны? Почему? --> нет, порядок гарантирован только в рамках 1-ой партиции 18. Как сделать так, чтобы все сообщения по одному клиенту попали в одну партицию? --> Отправлять с одним ключом 19. Timestamp -20. Headers +20. Headers --> тупо набор пар ключ - значение 21. Batch size. Linger time --> размер буфера для отправки и время его заполнения batch.size, linger.ms 22. Retry --> сколько раз пытаемся получить ack от Kafka, retries, retries.backoff.ms # Consumer 23 Как один consumer читает из нескольких партиций --> поочередно сначала из одной, потом из следующей и т.д. -24 Если consumer не смог обработать сообщение --> он может только +24 Если consumer не смог обработать сообщение --> он может только либо обновить оффсет, либо не обновлять. Нормальная практика помещать такие сообщения в отдельную очередь для другой обработки # Docker, Kubernetes, OpenShift. 1. Контейнеризация