Топики

Топик это логическая коллекция сообщений, на которые можно подписываться и отписываться. Топик представляет собой поток данных, в котором сообщения хранятся и обрабатываются. Сообщения, отправленные в определённый топик, доставляются подписчикам этого топика.

Создание топика через портал

Чтобы создать топик через портал:

  1. В главном меню портала перейдите в раздел Ресурсы  Приложения Managed Service for Kafka.
  2. В строке с нужным кластером нажмите на кнопку .
  3. Перейдите на вкладку Топики, нажмите на кнопку  Действия и выберите пункт Пакетное создание топиков Kafka.
  4. В открывшемся окне заполните поля:

    • Имя Topic * уникальное имя топика в рамках проекта.

      1. Длина имени — до 255 символов.

      2. Может содержать прописные и строчные буквы латинского алфавита, цифры, точку, дефис и символ нижнего подчёркивания.

      3. Точку нельзя использовать в конце имени.

    • Количество разделов * — количество разделов (partitions), на которые будет разделён топик, от 1 до 50;
    • Тип очистки * — политика очистки топика:
      • delete — удаление информации из топика;
      • compact — сжатие информации в топике;
      • compact, delete — сжатие и удаление информации из топика.
  5. Если выбран тип очистки delete или compact, delete:
    1. В поле Ограничение размера топика по * выберите условия, при выполнении которых будет применён выбранный Тип очистки *:
      • времени;
      • размеру;
      • времени и размеру.
    2. Заполните поля в зависимости от значения, выбранного в поле Ограничение размера топика по *:

      Значение поля Ограничение размера топика по *Поля, которые нужно заполнить
      времени
      • Время хранения информации в Topic, мс *
      • Единицы измерения
      размеру
      • Объем хранения информации в разделе, байт *
      времени и размеру
      • Время хранения информации в Topic, мс *
      • Единицы измерения
      • Объем хранения информации в разделе, байт *

      В результате информация в топике будет удаляться или сжиматься и удаляться после достижения указанного времени или объёма хранения информации в топике.
      Чтобы создать ещё один топик, нажмите на кнопку
       .

  6. Нажмите на кнопку Подтвердить.

Созданный топик отобразится на портале:

Создание топика через терминал

Чтобы создать топик через терминал:

  1. Подключитесь к серверу по SSH-ключу.
  2. Смените пользователя на root, выполнив команду:

    sudo -i
  3. Перейдите в папку /app/kafka/kafka_<версия_Kafka>/bin, в которой установлен сервис Kafka.
  4. Выполните команду:

    ./kafka-topics.sh --bootstrap-server <IP-адрес>:9091 --command-config /app/kafka/config/client.properties --create --topic <НАЗВАНИЕ ТОПИКА>

    где:

    • --bootstrap-server — IP-адрес кластера Kafka с портом 9091;
    • --command-config — расположение файла client.properties;
    • --topic — название топика.

Просмотр списка топиков через терминал

Чтобы посмотреть список топиков через терминал:

  1. Подключитесь к серверу по SSH-ключу.
  2. Смените пользователя на root, выполнив команду:

    sudo -i
  3. Перейдите в папку /app/kafka/kafka_<версия_Kafka>/bin, в которой установлен сервис Kafka.
  4. Выполните команду:

    ./kafka-topics.sh --bootstrap-server <IP-адрес>:9091 --command-config /app/kafka/config/client.properties --describe

    где:

    В результате отобразятся все топики кластера Kafka:

Запись информации в топик через терминал

Чтобы записать информацию в топик через терминал:

  1. Подключитесь к серверу по SSH-ключу.
  2. Смените пользователя на root, выполнив команду:

    sudo -i
  3. Перейдите в папку /app/kafka/kafka_<версия_Kafka>/bin, в которой установлен сервис Kafka.
  4. Выполните команду:

    ./kafka-console-producer.sh --broker-list <IP-АДРЕС>:9091 --topic <НАЗВАНИЕ ТОПИКА> --producer.config /app/kafka/config/client.properties

    где:

    • --broker-listIP-адрес кластера Kafka с портом 9091;
    • --topic — название топика;
    • --producer.config — расположение файла client.properties.
  5. Введите информацию, которую нужно записать в топик, и нажмите Enter.
  6. По завершении нажмите клавиши CTRL + C:

Чтение информации из топика через терминал

Чтобы прочитать информацию из топика через терминал:

  1. Подключитесь к серверу по SSH-ключу.
  2. Смените пользователя на root, выполнив команду:

    sudo -i
  3. Перейдите в папку /app/kafka/kafka_<версия_Kafka>/bin, в которой установлена Kafka.
  4. Выполните команду:

    ./kafka-console-consumer.sh --from-beginning --bootstrap-server <IP-АДРЕС>:9091 --topic <НАЗВАНИЕ ТОПИКА> --consumer.config /app/kafka/config/client.properties

    где:

    • --bootstrap-serverIP-адрес кластера Kafka с портом 9091;
    • --topic — название топика;
    • --consumer.config — расположение файла client.properties.
  5. Для завершения чтения информации из топика нажмите клавиши CTRL + C: