kafka в docker swarm

Thank you for reading this post, don't forget to subscribe!

Стек для запус­ка kafka в docker swarm выгля­дит сле­ду­ю­щим образом:

[codesyntax lang="bash" blockstate="collapsed"]

[/codesyntax]

деп­ло­им наш стек:
docker stack deploy -c kafka.yml kafka

посто­ян­ные хра­ни­ли­ща созда­ны в кла­сте­ре ceph, так­же рабо­та­ет docker-flow-proxy, с помо­щью кото­ро­го и про­ки­ды­ва­ем зоокипер.
мене­джер kafka досту­пен по ссылке:
kafkamgr.test.ru

Zookeeper досту­пен по сле­ду­ю­щим домен­ным именам:
zk1.test.ru
zk2.test.ru
zk3.test.ru

Kafka доступ­на по сле­ду­ю­щим URL:
kafka.test.ru:9092
kafka.test.ru:9093
kafka.test.ru:9094

что­бы про­ве­рить работу,добавляем в /etc/hosts:
cat /etc/hosts
ip1 kafka.test.ru zk1.test.ru zk3.test.ru zk2.test.ru
ip2 kafka.test.ru zk1.test.ru zk3.test.ru zk2.test.ru
ip3 kafka.test.ru zk1.test.ru zk3.test.ru zk2.test.ru

и  кача­ем:
wget https://www-eu.apache.org/dist/kafka/2.3.0/kafka_2.11-2.3.0.tgz
tar -xzvf kafka_2.11-2.3.0.tgz
cd kafka_2.11-2.3.0/bin/

созда­ём топик с име­нем TestTopic, коли­че­ство реплик 3:
./kafka-topics.sh --create --zookeeper zk1.test.ru:2181,zk2.test.ru:2181,zk3.test.ru:2181 --replication-factor 3 --partitions 1 --topic TestTopic
Created topic TestTopic.

Посмот­реть спи­сок топиков:
./kafka-topics.sh --list --zookeeper zk1.test.ru:2181
TestTopic
TutorialTopic
__consumer_offsets

созда­ём producer:
[root@node1 bin]# ./kafka-console-producer.sh --broker-list kafka.test.ru:9092 --topic TestTopic
>

под­клю­ча­ем­ся с помо­щью consumer к любо­му кон­тей­не­ру с kafka:
[root@node3 bin]# ./kafka-console-consumer.sh --bootstrap-server kafka.test.ru:9093 --topic TestTopic --from-beginning

после это­го можем пере­да­вать сообщения:
они появят­ся со сто­ро­ны consumer:

Зай­дём в kafkamanager

http://kafkamgr.test.ru/ если он недо­сту­пен или не может под­це­пить­ся к zookeeper то нуж­но рестар­та­нуть кон­тей­нер kafka_kafka-manager

Имя для кла­сте­ра берём про­из­воль­ное - test
Zookeeper hosts берём из наше­го yml фай­ла, строка:
KAFKA_ZOOKEEPER_CONNECT: zk-1:2181,zk-2:2181,zk-3:2181

после про­ма­ты­ва­ем вниз и нажи­ма­ем save.
Если всё ок то будет сле­ду­ю­щее сообщение:
как видим всё кор­рект­но создалось:

наш топик кор­рект­но создан:

рабо­та с мене­дже­ром тут раз­би­рать­ся не будет(тупо не рабо­тал я с ним.)