Конфигурирование узла (брокера) Corax#

Конфигурирование брокера Corax осуществляется в файле config/server.properties.

Допускается создание файлов конфигурации с различными именами, например:

    config/server-1-node-cluster.properties
    config/server-3-node-cluster.properties
    config/server-3-node-cluster-on-1-machine.properties
    config/server-5-node-cluster.properties

При запуске Corax достаточно указать нужный конфигурационный файл.

Минимальная конфигурация#

Пример конфигурационного файла server.properties для одного брокера:

broker.id=1
listeners=PLAINTEXT://localhost:9092
zookeeper.connect=localhost:2181
log.dirs=/var/log/kafka_<версия Scala>-<версия Kafka>/kafka-logs

Шаги создания конфигурационного файла:

  1. Присвойте ключу broker.id необходимый числовой идентификатор. Необходимо соблюдать уникальность данного идентификатора на всех серверах кластера.

    Пример

    broker.id=1

  2. Для ключа zookeeper.connect укажите IP:PORT сервиса ZooKeeper.

    Пример

    Запущен один экземпляр ZooKeeper и его порт clientPort=2181:

    zookeeper.connect=localhost:2181

    Пример

    Запущен кластер из нескольких экземпляров ZooKeeper (адреса всех служб ZooKeeper указаны через запятую):

    zookeeper.connect=10.XX.XX.XX:YYYY,10.XX.XX.XX:YYYY

  3. Для ключа log.dirs задайте одну или несколько директорий, в которых планируется хранение сообщений, передаваемых в Corax.

    Пример

    log.dirs=/var/log/kafka_<версия Scala>-<версия Kafka>/kafka-logs

    Примечание

    Если планируется использовать Corax под большой нагрузкой, то должно быть выделено достаточно места, так как все сообщения будут сохраняться на диск именно в указанной директории.

    Если на физическом сервере возможно использование нескольких физических жестких дисков для хранения сообщений Corax, то для увеличения производительности перечислите пути к директориям на этих дисках через запятую:

    log.dirs=/var/log/kafka_<версия Scala>-<версия Kafka>/kafka-logs,/another_disk/kafka_<версия Scala>-<версия Kafka>/kafka-logs

  4. Для ключа listeners присвойте строку формата <ПРОТОКОЛ>://<хост>:<порт>:

    Пример

        listeners=PLAINTEXT://localhost:9092
        listeners=SSL://<host2-ip-address>:9092
        listeners=SASL_PLAINTEXT://:9092
    

Расширенная конфигурация#

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

  • Если на одном физическом сервере планируется запускать несколько брокеров Corax, то для каждого брокера укажите уникальный порт в параметре listeners. По умолчанию сервер Corax слушает порт 9092.

  • Можно изменить значение количества партиций для вновь создаваемых топиков по умолчанию в ключе num.partitions. Если для сервера Corax доступны несколько жестких дисков, увеличение числа партиций увеличит производительность Corax. Количество партиций по умолчанию можно указать равным числу дисков.

    Пример:

    num.partitions=4

  • Для повышения надежности необходимо раскомментировать записи, содержащие ключи log.flush.interval.messages и log.flush.interval.ms. В этом случае указывается, как часто должна происходить реальная запись сообщений на диск: либо по истечении заданного времени, либо после достижения заданного количества незаписанных сообщений. Данную настройку можно изменить для конкретного топика при его создании.

    Пример:

    log.flush.interval.messages=10000
    log.flush.interval.ms=1000
    
  • Для ключа log.retention.hours задается время хранения партиций в часах, по истечении которого партиция будет доступна для удаления. В данном случае отсчет будет вестись по самому новому сообщению в партиции.

    Пример

    log.retention.hours=168

  • Для ключа log.cleaner.enable задается значение true для активации механизма удаления старых партиций.

    Пример

    log.cleaner.enable=true