diff --git a/README.md b/README.md index 661f81b..3e4b46e 100644 --- a/README.md +++ b/README.md @@ -47,26 +47,28 @@ https://www.youtube.com/watch?v=Y1eSeEJDses вебинар по обзору н 4. Основные сущности Kafka # Kafka Cluster. Zookeaper -5. Zookeper. Хранение метаданных кластера +5. Zookeper. Хранение метаданных кластера --> Zk - это распределенная система, хранящая инфу о топиках, партициях, брокерах, топиках с оффсетами. Через нее осуществляется интеграция нод в кластер (по средствам connection string к Zk прописанному в пропертях нод Kafka), выборка лидера в каждой партиции. В свою очередь сама является высокодопустопным кластерным решением с поддержкой репликации (master-slaves). Начиная с некоторой версии (TODO какой ?) эти функции МОЖЕТ выполнять сама kafka 6. Kafka кластер. Устройство 7. Партиционирование. Leader партиция. 8. Репликация -9. Настройка Kafka кластера для корректной работы партиционирования и репликации +9. Настройка Kafka кластера для корректной работы партиционирования и репликации --> количесво партиций зависит от скорости обработки (количества обработчиков - consumer), на всякий случай лучше иметь 3 - 4 чтоб можно было быстро вводить новые, репликия N - число серверов для кворума, значит число реплик = N*2 - 1. Например, 3 реплики для кворума = 5 (1 выходит из строя, 1 для чего-нибудь перезапускаем) 10. Устройство файлового хранилища Kafka 11. TTL # Producer 13. Producer. Из каких шагов состоит инцициализация -14. Стратегии коммитинга. Гарантия доставки +14. Стратегии коммитинга. Гарантия доставки --> задаем при отправки от сколько реплик хотим получить подтверждение acks=all 15. Сериализация, Десериализация -16. Стратегии выбора партиции продюссером -17. Можно ли из топика (распределен по 3 партициям) прочитать сообщения в том же порядке, в котором они были записаны? Почему? -18. Как сделать так, чтобы все сообщения по одному клиенту попали в одну партицию? +16. Стратегии выбора партиции продюссером --> по одному ключу в одну партицию, без или разные - Round-Robin +17. Можно ли из топика (распределен по 3 партициям) прочитать сообщения в том же порядке, в котором они были записаны? Почему? --> нет, порядок гарантирован только в рамках 1-ой партиции +18. Как сделать так, чтобы все сообщения по одному клиенту попали в одну партицию? --> Отправлять с одним ключом 19. Timestamp -20. Headers -21. Batch size. Linger time -22. Retry +20. Headers --> тупо набор пар ключ - значение +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. Контейнеризация