BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс Современная архитектура хранилища данных » Apache Kafka с нуля » Конфигурация кластера: балансировка нагрузки, ISR, min.insync.replicas

Конфигурация кластера: балансировка нагрузки, ISR, min.insync.replicas

Apache Kafka строится вокруг идей репликации, лидерства и консистентности. Правильная конфигурация кластера обеспечивает сбалансированную нагрузку между брокерами, устойчивость к сбоям и предсказуемое поведение при высоких нагрузках. Эта глава посвятлена тем ключевым параметрам, которые управляют балансировкой нагрузки, состоянием в синхронности реплик (ISR) и порогами гарантированной консистентности через min.insync.replicas. Мы рассмотрим архитектурные принципы, связанные с репликацией и лидерством, а также перейдём к практическим настройкам и операционным рискам, характерным для обновления конфигураций в продакшен-сценариях.

Внедряемая конфигурация кластера определяет не только поведение отдельных брокеров, но и сценарии публикации и потребления: какие данные считаются безопасными, как быстро данные достигают дубликатов на разных узлах и что произойдет в случае потери узла. Балансировка нагрузки, правильная работа ISR и разумные пороги min.insync.replicas становятся критическими элементами для обеспечения доступности и устойчивости потоковых систем, особенно при интеграции данных и построении конвейеров событий.

  • Архитектура кластера: балансировка нагрузки, лидеры и копии.
  • Концепции консистентности: ISR, min.insync.replicas, acks и их влияние на доступность.
  • Практические настройки, мониторинг и методы диагностики.

     

Основы архитектуры: балансировка нагрузки, лидеры и копии

Балансировка нагрузки в Apache Kafka достигается за счет распределения партиций по брокерам и распределения лидеров по кластерам. Каждая партиция имеет одного лидера и множество реплик. Все записи идут в лог лидера, а копии реплик дублируют эти данные. Ключевые принципы:

  • Лидер каждой партиции отвечает за записи и передачу новых записей в все копии.
  • Реплики, входящие в ISR (In-Sync Replicas), синхронизируют свой локальный лог с лидер и применяют те же записи в том же порядке.
  • Балансировка нагрузки достигается через разбиение данных на партиции и рандомизированное распределение партиций между брокерами, а также через перераспределение лидеров партиций между брокерами в ходе операций балансировки.

ISR является критическим индикатором устойчивости: если не все синхронно реплицируются, часть данных может оказаться недоступной для безопасной записи. Распределение лидерства по партициям может существенно влиять на задержки и пропускную способность. В продакшене чаще всего применяют балансировку на уровне топологий: умелая настройка числа партиций на топик и равномерное распределение по брокерам позволяют достичь эффективной загрузки узлов и минимизировать hotspots. Важно помнить, что чрезмерное дробление партиций может повысить накладные расходы на консистентность и мониторинг; оптимальная конфигурация зависит от нагрузки, латентности и требований по гарантируемой доставке.

При проектировании кластера следует учитывать следующие моменты:

  • Количество партиций на топик влияет на параллелизм потребления и на мощность параллЕЛизации обработки.
  • Распределение лидеров партиций должно происходить так, чтобы не перегружать один брокер.
  • ISR динамически изменяется в зависимости от задержек и доступности реплик; поддержка устойчивости требует внимательного отношения к конфигурации min.insync.replicas и unclean leader election режимам.
    ## Пример конфигурации сервера (часть, для иллюстрации архитектурной роли)
    broker.id=1
    listeners=PLAINTEXT://:9092
    log.dirs=/var/lib/kafka/logs
    num.partitions=12
    default.replication.factor=3
    offsets.topic.replication.factor=3
    transaction.state.log.replication.factor=3
    unclean.leader.election.enable=false
    

    Репликация, ISR и устойчивость к сбоям

Репликация в Kafka строится вокруг идей ведущей копии и синхронного дублирования. Реплики должны оставаться в синхронности с лидером, чтобы записи считались подтверждёнными и могут быть безопасно прочитаны потребителями после подтверждения. В этом контексте ISR (In-Sync Replicas) - это набор реплик, которые находятся в актуальной синхронизации с лидером и способны взять на себя роль лидера при его потере.

 

Основные принципы и последствия:

  • Если какое-либо количество реплик выходит из строя или перестает синхронно реплицироваться, они удаляются из ISR до момента восстановления нормального состояния. Это напрямую влияет на устойчивость к потере данных и на способность поддерживать требование min.insync.replicas.
  • При сильной задержке реплик или сетевых сбоях часть копий перестает быть в ISR; записи могут перестать быть безопасно доступными, если держать слишком высокий порог консистентности без надлежащих механизмов коррекции.
  • В случае сбоя лидера, Kafka выбирает нового лидера среди реплик в ISR. Если все реплики вышли из ISR, возникает ситуация с недоступной партицией для записи до восстановления синхронности.
  • unclean.leader.election.enable управляет тем, может ли лидер быть избран из реплик вне ISR. Значение по умолчанию false увеличивает устойчивость к потере данных, но может снизить доступность в условиях сбоя.

Понимание ISR и его влияния на доступность и консистентность критически важно в сценариях, где требуется высокий уровень гарантий сохранности данных. В реальном мире ISR может исчезать и восстанавливаться по мере нормализации сетевых путей, нагрузок и откатов на диск. Эффективная диагностика требует мониторинга размера ISR, времени восстановления и зависимости между ISR и конфигурациями topic-level и broker-level.

## Пример команды для описания топика и его ISR
kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic orders

## Пример получения информации об ISR в JMX или через мониторинг
## (на практике через Prometheus JMX-экспортёр или аналогичный агент)

min.insync.replicas и acks: влияние на консистентность и доступность

min.insync.replicas - это минимальное число реплик в ISR, необходимое для того, чтобы запись считалась успешно записанной на уровне топика. Этот параметр напрямую влияет на баланс между консистентностью и доступностью: чем выше значение, тем выше гарантия сохранности данных, но тем выше риск недоступности в случае задержек репликации или потери части узлов.

  • acks - это параметр продюсера, который определяет, сколько подтверждений требуется от брокеров, прежде чем запись будет считана успешной. Значение acks=all (или -1) соответствует тому, что запись считается успешной только после подтверждения всеми репликами в ISR, что усиливает консистентность, но может увеличить задержки.
  • min.insync.replicas может быть установлен как на уровне брокера, так и на уровне топика. У брокера он задаёт значение по умолчанию, которое затем может быть переопределено для конкретных топиков через конфигурацию topict.config.min.insync.replicas.
  • Установив min.insync.replicas=2 на топике с replication.factor=3, Kafka гарантирует, что для успешной записи должно быть же две реплики в ISR; если одна реплика падает, продюсер может столкнуться с ситуацией, когда верификация записи становится невозможной и потребуются меры на стороне продюсера или потребителя.

     

Поведение системы при разных сценариях:

  • Продюсер с acks=all и min.insync.replicas=2: записи будут подтверждаться только если две реплики в ISR. Это обеспечивает сильную консистентность, но повышает вероятность ошибок записи в условиях сбоя одного узла.
  • Продюсер с acks=1 и min.insync.replicas=2: запись будет подтверждаться после того, как лидер примет запись и запишет в свой локальный лог, но пока две реплики в ISR не будут готовы, запись может казаться подтверждённой. Это снижает задержку, но уменьшает гарантии консистентности.
  • Включение unclean.leader.election.enable может привести к тому, что лидер избирается из реплик вне ISR. Это повышает доступность во время сбоев, но может привести к потере данных, если такие реплики не синхронизированы должным образом.
    ## Пример конфигурации broker (server.properties)
    min.insync.replicas=2
    unclean.leader.election.enable=false
    ## Пример конфигурации топика (через Kafka admin API или через крафтер)
    ## min.insync.replicas может быть переопределен на уровне топика
    

    Конфигурация и практические настройки: server.properties, топики

Практическая конфигурация кластера строится на сочетании общекластерных параметров и параметров конкретных топиков. Ключевые аспекты:

  • replication.factor задаёт число копий каждого лог-объекта. В продакшен-окружении чаще выбирают не менее 3, чтобы обеспечить устойчивость к выходу одного брокера.
  • min.insync.replicas на уровне брокера задаёт дефолтное требование для всех топиков, но его можно переопределять на уровне топика. Это позволяет гибко настраивать требования консистентности в зависимости от категории данных.
  • unclean.leader.election.enable должен быть установлен в значение false по умолчанию, чтобы предотвращать выбор лидера из нефункционирующих реплик. В сценариях аварийного восстановления можно рассмотреть временное изменение, но это увеличивает риск потери данных.
  • unclean.leader.election влияет на доступность и риск потери данных. В системах с критической записью изменений, рекомендуется держать его выключенным, пока не будет достаточно надёжной инфраструктуры и мониторинга.

Примерный набор конфигураций для типичного production-кластера:

  • broker.config:

    • broker.id
    • listeners
    • log.dirs
    • num.partitions
    • default.replication.factor
    • offsets.topic.replication.factor
    • transaction.state.log.replication.factor
    • min.insync.replicas
    • unclean.leader.election.enable
  • topic.config (по умолчанию может наследовать broker-level):

    • replication.factor
    • min.insync.replicas (можно переопределить на уровне топика)
    • segment.bytes и retention.options - вспомогательные параметры для управления размером логов и длительностью хранения.
      ## Пример примера настройки топика через административный клиент (псевдо-команды)
      kafka-topics.sh --bootstrap-server localhost:9092 --create --topic payments --partitions 24 --replication-factor 3
      ## Установка минимального числа синхронных копий на уровне топика
      kafka-configs.sh --bootstrap-server localhost:9092 --alter --entity-type topic --entity-name payments --add-config min.insync.replicas=2
      

      Мониторинг, диагностика и операционные практики

Эффективная эксплуатация кластера требует системного мониторинга ISR, задержек, пропускной способности и поведения лидеров. Ключевые метрики и практики:

  • Поддержание видимости ISR: размер ISR и его динамика по времени. Низкий уровень ISR указывает на проблемы с сетью, производительностью дисков или перегрузку брокера.
  • Время восстановления ISR: задержки между сбоем и возвращением реплик в ISR. Длительные простои свидетельствуют о недостаточных ресурсах или вредных конфигурациях.
  • Метрики задержки и пропускной способности: задержка продюсера, задержка потребителя, латентность межпартиионной коммуникации.
  • Логика балансировки лидеров: частота перераспределения лидеров может быть индикатором неравномерной загрузки. Чрезмерная частота перераспределений может привести к нестабильной работе и увеличению задержек.
  • Мониторинг JMX и экспорт журналов: для устойчивости важно отслеживать метрики, такие как UnderReplicatedPartitions, Журналы ошибок и WARN/ERROR уровни внутри логов брокера.

Рекомендации:

  • Устанавливайте разумные пороги для ISR и настраивайте alerting на снижение количества синхронных копий.
  • Периодически выполняйте ребалансировку партиций через команды partition reassignment с минимальной нагрузкой в окнах обслуживания.
  • Проверяйте совместимость продюсеров и потребителей с текущими настройками acks и min.insync.replicas; обеспечивайте корректные retry-логики и обработку ошибок записи.
    ## Команды для диагностики ISR и топиков
    kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic orders
    ## Мониторинг в Prometheus через JMX-экспортёр или аналогичный агент:
    ## - kafka.cluster:state
    ## - kafka.server:type=ReplicaFetcherManager,name=MaxLatencyMs
    

    Key takeaways

  • ISR обеспечивает устойчивость к сбоям и влияет на допустимую задержку и гарантии доставки; поддержка ISR на уровне топика и брокера - критический элемент архитектуры.
  • min.insync.replicas и acks - важные параметры выбора баланса между консистентностью и доступностью; корректное сочетание обеспечивает предсказуемость поведения конвейеров данных.
  • Балансировка лидеров и равномерное распределение партиций между брокерами минимизируют hotspots и улучшают общую пропускную способность.
  • Включение unclean.leader.election.enable увеличивает доступность за счет риска потери данных; такие режимы требуют тщательной оценки бизнес-триксов и мониторинга.
  • Практика мониторинга ISR, задержек и производительности брокера позволяет вовремя выявлять проблемы и планировать масштабы до сбоев.
  • Ротация и перераспределение партиций должны планироваться в окнах обслуживания; автоматическое перераспределение требует осторожности и ясного плана отката.
  • Точная настройка конфигураций на уровне брокеров и топиков позволяет адаптировать Kafka под требования конкретной предметной области и инфраструктуры.

     

FAQ

  1. Что такое ISR и почему он так важен?

ISR (In-Sync Replicas) - это набор реплик, находящихся в синхронном соответствии с лидером партиции. Они способны принять на себя роль лидера в случае сбоя. ISR критично важен для обеспечения устойчивости к потере данных и согласованности. Если реплика выходит за пределы ISR, она не считается безопасной копией, и записи могут не достигнуть требуемого порога консистентности.

 

  1. Как выбрать min.insync.replicas?

Выбор min.insync.replicas зависит от вашего порога по гарантиям консистентности и требований к доступности. Для систем с высокой критичностью данных разумно устанавливать значение близким к replication.factor минус одна реплика, чтобы при сбое одной реплики система оставалась доступной. В то же время это повышает риск невозможности записи во время задержек или потерь реплик. Рекомендуется тестировать поведение под реальными нагрузками и согласовывать пороги с бизнес-целями.

 

  1. Как влияет acks на задержку записи?

aсks=all обеспечивает наивысшую гарантию консистентности, но может увеличить задержку, особенно при большой задержке между лидером и репликами. Уменьшение значения acks снижает задержку, но уменьшает гарантию сохранности данных при сбоях. В реальности следует выбирать режим, соответствующий критичности данных и требуемой скорости обработки.

 

  1. Что произойдет при сбое лидера партиции?

При сбое лидера Kafka выбирает нового лидера среди реплик в ISR. Если все реплики вышли из ISR или unclean.leader.election.enable=true, Kafka может выбрать лидера за пределами ISR, что несет риск потери данных. Важно заранее определить допустимые сценарии и настроить мониторинг для быстрого выявления таких ситуаций.

 

  1. Как мониторить ISR и устойчивость к сбоям?

Мониторинг ISR осуществляется через консольные утилиты (kafka-topics.sh) и через метрики JMX/Prometheus. Обратите внимание на размер ISR, скорость восстановления и количество компаний, находящихся вне ISR. Также полезно отслеживать latency, throughput и время восстановления партиций после сбоев.

 

  1. Какие риски связаны с переконфигурацией кластера?

Переконфигурации несут риск потери данных и временной недоступности. Необходимо проводить тестирование в средах staging и выполнять изменения в окно обслуживания. Включение unclean.leader.election.enable требует особой осторожности и постобслуживающих проверок.

 

  1. Можно ли устанавливать min.insync.replicas на уровне топика?

Да. min.insync.replicas можно устанавливать на уровне топика, чтобы переопределять дефолт broker-level. Это позволяет адаптировать требования консистентности под конкретные данные и бизнес-правила, сохранив при этом баланс между доступностью и безопасностью.

 

  1. Какие практики настройки рекомендуются в реальном окружении?

Рекомендуются: разумное число партиций для баланса параллелизма; равномерное распределение лидеров; разумная настройка min.insync.replicas и acks; выключение unclean.leader.election по умолчанию; регулярный мониторинг ISR и проведения плановых перераспределений партиций.

 

  1. Как связать конфигурацию с потоком данных и интеграционными сценариями?

Правильная настройка баланса и консистентности критична для конвейеров событий и потоковых интеграций. Необходимо обеспечить соответствие между требованиями по задержке, пропускной способности и уровню гарантий данных на уровне тем и топологий для корректной интеграции между системами.

 

  1. Какие инструменты и подходы полезны для операционной практики?

Полезны: инфраструктура мониторинга (Prometheus, Grafana, JMX-экспортёр), инструмент для перераспределения партиций (kafka-reassign-partitions.sh), тестирование на устойчивость к сбоям, планирование изменений в окнах обслуживания и документирование изменений в аварийном плане.

 

← Предыдущая статья
Мониторинг и операционная телеметрия: метрики, алерты, dashboards
Следующая статья →
Kafka Connect: источники и приемники данных, коннекторы

 

Узнать стоимость решенияЗапросить видео презентацию

Запросить видео презентацию Запросить доступ к демо стенду online Узнать стоимость лицензий

Задать вопрос

loading...

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • Компания ООО "Комус" - один из лидеров российского рынка оптовых продаж офисных товаров и техники. Компания поставляет широкий ассортимент продукции - от канцелярских принадлежностей до компьютерной техники и офисной мебели.

  • KERAMA MARAZZI — международный бренд, входящий в число лидеров глобального рынка керамики. Бизнес компании охватывает весь процесс создания керамических изделий, от глиняных карьеров до фирменной розницы во всех крупных городах РФ и за рубежом.

  • ЭГИС - международная фармацевтическая компания, основанная в 1907 году в Венгрии. Компания имеет представительства более чем в 60 странах мира, в том числе в России. Компания ЭГИС является одним из ведущих производителей дженерических лекарственных средств в Центральной и Восточной Европе. Её деятельность охватывает все звенья производственно-сбытовой фармацевтической цепочки.

  • Авиакомпания NordStar (АО «АК «НордСтар») – работает под данным брендом с 2008 г. и сейчас входит в топ-15 крупнейших российских авиакомпаний (данные Росавиации) с пассажирооборотом более 1 млн человек в год. АО «АК «НордСтар» выполняет и внутренние, и внешние рейсы, а ее основные хабы - Домодедово, Пулково и Емельяново. С 2021 года компания является базовым перевозчиком аэропорта Норильск.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.