Kafka: различия между версиями

Материал из Home Wiki
Перейти к навигации Перейти к поиску
(не показаны 3 промежуточные версии этого же участника)
Строка 35: Строка 35:


= Построение кластера =
= Построение кластера =
Предварительно нужен настроенный zookeeper, в примере используется кворум (3 сервиса), настройка тут [[Zookeeper]].
Пример kafka-cluster.yml для одного хоста, у другого будет все аналогично, за исключением KAFKA_BROKER_ID и KAFKA_ADVERTISED_HOST_NAME
Пример kafka-cluster.yml для одного хоста, у другого будет все аналогично, за исключением KAFKA_BROKER_ID и KAFKA_ADVERTISED_HOST_NAME


Строка 68: Строка 65:
             - /opt/docker/kafka/:/kafka/
             - /opt/docker/kafka/:/kafka/
</syntaxhighlight>
</syntaxhighlight>
= Удаление топика =
./kafka-topics.sh --zookeeper localhost --delete --topic topic1
= Удаление топика помеченного MarkedForDeletion:true =
./zkCli.sh --server 127.0.0.1:2183
rmr /brokers/topics/topic1
delete /admin/delete_topics/topic1
После этого можно будет пересоздать топик.
= Ссылки =
http://kafka.apache.org/documentation.html#uses
https://stackoverflow.com/questions/25452369/best-option-to-put-nginx-logs-into-kafka


[[Категория:Работа]]
[[Категория:Работа]]
[[Категория:Java]]
[[Категория:Kafka]]

Версия 08:23, 31 мая 2018

Категория:Работа

Список каналов

~/work/kafka_2.11-0.10.1.1/bin$ ./kafka-topics.sh --zookeeper 172.18.0.5:2181 --list
__consumer_offsets
telestat-v2-sink
topic-jhipster

Вместо прямых IP адресов можно использовать название сервиса:

~/work/kafka_2.11-0.10.1.1/bin$ ./kafka-topics.sh --zookeeper telestat-zookeeper:2181 --list


Запись в канал

В консоли каждая строка будет отдельным сообщением в канал

~/work/kafka_2.11-0.10.1.1/bin$ ./kafka-console-producer.sh --broker-list 172.18.0.3:9092 --topic telestat-v2-sink

Чтение из канала

~/work/kafka_2.11-0.10.1.1/bin$ ./kafka-console-consumer.sh --bootstrap-server 172.18.0.3:9092 --topic telestat-v2-sink --from-beginning

Статьи

http://dotsandbrackets.com/highly-available-kafka-cluster-docker-ru/

https://sematext.com/blog/monitoring-kafka-on-docker-cloud/

Построение кластера

Пример kafka-cluster.yml для одного хоста, у другого будет все аналогично, за исключением KAFKA_BROKER_ID и KAFKA_ADVERTISED_HOST_NAME

Можно поменять порядок хостов в KAFKA_ZOOKEEPER_CONNECT.

KAFKA_BROKER_ID можно не указывать, он настроится автоматически.

version: '2'
services:
    kafka-cluster:
        container_name: kafka-cluster
        image: wurstmeister/kafka:1.0.0
        environment:
            ## NB! SET KAFKA_BROKER_ID UNIQUE PER HOST
            KAFKA_BROKER_ID: 1
            KAFKA_ADVERTISED_HOST_NAME: kafka1
            KAFKA_ADVERTISED_PORT: 9092
            KAFKA_ZOOKEEPER_CONNECT: zoo1:2183,zoo2:2183,zoo3:2183
            # KAFKA_CREATE_TOPICS: "telestat-v2-sink:1:2,prozvon-sink:1:2,teledemo-v2-sink:1:2"
            KAFKA_LOG_DIRS: /kafka/kafka-logs
        ports:
            - 9092:9092
        restart: always
        extra_hosts:
            - "zoo1:192.168.1.8"
            - "zoo2:192.168.1.7"
            - "zoo3:192.168.1.6"
        volumes:
            - /opt/docker/kafka/:/kafka/