Apache Kafka (AlmaLinux 8)

Apache Kafka (AlmaLinux 8)

  • Операционна система: almalinux 8

Описание

Apache Kafka е дистрибутирана платформа за поточна обработка на данни, която дава възможност на различни приложения да изпращат и получават данни в реално време. Тя се използва за събиране, обработка и анализ на данни от различни източници, като логове, сензори, бази данни и др. Apache Kafka е изключително скалируем софтуер, който е устойчив на грешки, което го прави подходяща за големи и сложни приложения.

Включен софтуер

Пакет Версия
Kafka latest
Docker 3.20.10
Docker compose 2.12.2
containerd.io 1.6.10

Първоначално стартиране на услугата

Това приложение използва Docker, за да осигури по-бързо стартиране на прилежащия софтуер (Kafka) и директно започване на употребата му. По този начин се елиминира нуждата от запознаване със спецификите му по отношение на конфигурация и инсталация. За да започнете директна работа с приложението, единственото, което трябва да направите е да свържете приложението си, което ще ползва Apache Kafka, като му подадете IP адреса, назначен за виртуалната ви машина и порта, на който слуша Kafka (описан по-долу, по подразбиране е 9092).

Бързи настройкии и често задавани въпроси

  • Входът в клауд услугата се извършва посредством SSH ключ или парола, която сте посочили.
  • Docker е инсталиран според препоръките от официалната docker документация.
  • Стандартните команди docker и docker compose са вече достъпни в този това приложение.
  • При първо стартиране на виртуалната машина, отнема няколко минути, преди да се стартира Docker контейнер, съдържащ Kafka.
  • Kafka data е настроена да бъде persistent и се намира в /opt/kafka/data/.
  • По подразбиране, Kafka стартира работа върху всички налични интерфейси на машината. Портът за достъп до Kafka е 9092.

Допълнителни настройки при Docker

Допълнителнителните настройки за Kafka, които можете да променяте и които се контролират директно от Docker са зададени като променливи стойности в конфигурационния файл /opt/docker-kafka/docker-compose.yml:

Забележка: След промяна на която и да е от стойностите, трябва да пресъздадете Docker контейнера, върху който работи приложението. За повече информация, моля, прочетете секцията за пресъздаване на Docker контейнери.

  • ALLOW_PLAINTEXT_LISTENER: Дали да се използва или не PLAINTEXT listener. Default: no.
  • KAFKA_INTER_BROKER_USER: Apache Kafka inter broker комуникационен потребител. Default: user.
  • KAFKA_INTER_BROKER_PASSWORD: Apache Kafka inter broker комуникационна парола. Default: bitnami.
  • KAFKA_CERTIFICATE_PASSWORD: Парола за сертификати. Без defaults.
  • KAFKA_HEAP_OPTS: Java Heap размер за Apache Kafka. Default: -Xmx1024m -Xms1024m.
  • KAFKA_ZOOKEEPER_PROTOCOL: Аутентикационен протокол за Zookeeper конекции. Позволени протоколи: PLAINTEXT, SASL, SSL, и SASL_SSL. Defaults: PLAINTEXT.
  • KAFKA_ZOOKEEPER_USER: Потребител на Apache Kafka Zookeeper за SASL аутентикация. Без defaults.
  • KAFKA_ZOOKEEPER_PASSWORD: Потребителска парола за Apache Kafka Zookeeper за SASL аутентикация. Без defaults.
  • KAFKA_ZOOKEEPER_TLS_KEYSTORE_PASSWORD: Keystore файлова парола и парола за ключа на Apache Kafka Zookeeper. Без defaults.
  • KAFKA_ZOOKEEPER_TLS_TRUSTSTORE_PASSWORD: Парола на trustore за Apache Kafka Zookeeper. Без defaults.
  • KAFKA_ZOOKEEPER_TLS_VERIFY_HOSTNAME: Верифициране на Zookeeper хостнейм при TLS сертификаци. Defaults: true.
  • KAFKA_ZOOKEEPER_TLS_TYPE: Формат на TLS сертификатите, който да се ползва. Позволени стойности: JKS, PEM. Defaults: JKS.
  • KAFKA_CFG_SASL_ENABLED_MECHANISMS: Позволени механизми на SASL, които да се ползват при клиенти, inter broker или zookeeper комуникация. Позволени стойности: PLAIN, SCRAM-SHA-256, SCRAM-SHA-512 или комбинация от тези стойности, разделена със запетая. Default: PLAIN,SCRAM-SHA-256,SCRAM-SHA-512
  • KAFKA_CFG_SASL_MECHANISM_INTER_BROKER_PROTOCOL: SASL механизъм, който да се ползва за inter broker комуникация. Без defaults.
  • KAFKA_TLS_CLIENT_AUTH: Конфигурира kafka brokers да изискват аутентикация от страна на клиента. Позволени стойности: required, requested, none. Defaults: required.
  • KAFKA_TLS_TYPE: Формат на TLS сертификата. позволени стойности: JKS, PEM. Defaults: JKS.
  • KAFKA_CLIENT_USERS: Потребители, които ще бъдат създадени в Zookeeper, когато се използва SALS за клиентски комуникации, изброени със запетая. Default: user
  • KAFKA_CLIENT_PASSWORDS: Парола за потребителите, посочени в KAFKA_CLIENT_USERS, разделени със запетая. Default: bitnami
  • KAFKA_CFG_MAX_PARTITION_FETCH_BYTES: Максималният размер на data per-partition, който сървърът да върне. Default: 1048576
  • KAFKA_CFG_MAX_REQUEST_SIZE: Максималният размер на заявка (request) в байтове. Default: 1048576
  • KAFKA_ENABLE_KRAFT: Включване на Kafka Raft (KRaft). Default: no
  • KAFKA_KRAFT_CLUSTER_ID: Kafka cluster ID, ако се използва Kafka Raft (KRaft). Без defaults.

Работа с Docker

Организацията на това приложение е осъществена изцяло посредством Docker. По този начин можем да Ви предоставим готови приложения по-бързо. Освен това, конфигурацията им е по-гъвкава и е доста контролируема. За да можете да го контролирате това приложение обаче, е нужно да знаете някой базови Docker функционалности и особености.

Рестартиране на всички услуги

Рестартирането на базата данни и Docker контейнера, който съдържа самия Kafka, заедно с останалия софтуер, може да бъде извършено по два начина:

  1. Чрез рестартиране на цялата виртуална машина
  2. Рестартиране на Docker контейнерите, което е по-бързия вариант. За целта, достъпете машината си чрез SSH, и изпълнете следните команди:
sudo su -
cd /opt/docker-kafka
docker compose restart

Пресъздаване на Docker контейнери

Пресъздаването може да се наложи, в случай че сме променяли конфигурацията в docker-compose.yml. При тази ситуация, трябва да следвате следните стъпки:

cd /opt/docker-kafka
docker compose stop
docker compose up -d

Проверка на статуса на Docker приложението

За да направите проверка, трябва да изпълните следните команди:

sudo su -
docker ps -a

Моля, обърнете внимание на колоната STATUS. Тя трябва да показва от колко време работи услугата, например Up X minutes. Ако статуса е Restarting, то трябва да се провери какво не е наред с приложението. В такъв случай, можете да направите проверка, като проследите логовете на приложението по следния начин:

  1. Вземете името на приложението, което можете да видите в колоната NAMES от изходния код на командата docker ps -a. Вижте логовете с командата docker logs <NAME>, Където е името на контейнера.

Промяна на настройки

Описаните настройки в секцията Допълнителни настройки при Docker могат да бъдат нагласяни в docker-compose.yml файла. Пътят до него е описан отново в тази секция. За да промените настройка, отворете конфигурационния файл и обърнете внимание на секцията environment, намираща се под kafka. Всяка една конфигурационна опция трябва да бъде описана на нов ред с тире отпред по следния примерен начин:

    environment:
      - ALLOW_PLAINTEXT_LISTENER=no
      - KAFKA_HEAP_OPTS='-Xmx1024m -Xms1024m'

Моля, обърнете внимание, че трябва да се спазва и правилната индентация (брой празно място), тъй като това е важно за конфигурационни файлове от тип yaml.