zk集群的安装传送门:juejin.cn/post/714017…
简介:kafka是一种消息队列,主要用来处理大量数据状态下的消息队列,一般用来做日志的处理。
编写docker-compose.yml
version: '3.1'
services:
kfk1:
image: wurstmeister/kafka
restart: always
hostname: kfk1
container_name: kfk1
privileged: true
ports:
- 9091:9092
environment:
KAFKA_BROKER_ID: 1
KAFKA_LISTENERS: PLAINTEXT://kfk1:9091
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kfk1:9091
KAFKA_ADVERTISED_HOST_NAME: kfk1
KAFKA_ADVERTISED_PORT: 9092
KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181
JMX_PORT: 9988
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /dzz/kfk1:/kafka/kafka\-logs\-kfk1
external_links:
- zoo1
- zoo2
- zoo3
networks: #已有网络,直接放在zk集群网络下
- dcset_zoomy
kfk2:
image: wurstmeister/kafka
restart: always
hostname: kfk2
container_name: kfk2
privileged: true
ports:
- 9092:9092
environment:
KAFKA_BROKER_ID: 2
KAFKA_LISTENERS: PLAINTEXT://kfk2:9092
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kfk2:9092
KAFKA_ADVERTISED_HOST_NAME: kfk2
KAFKA_ADVERTISED_PORT: 9092
KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181
JMX_PORT: 9988
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /dzz/kfk2:/kafka/kafka\-logs\-kfk2
external_links:
- zoo1
- zoo2
- zoo3
networks:
- dcset_zoomy
kfk3:
image: wurstmeister/kafka
restart: always
hostname: kfk3
container_name: kfk3
privileged: true
ports:
- 9093:9092
environment:
KAFKA_BROKER_ID: 3
KAFKA_LISTENERS: PLAINTEXT://kfk3:9093
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kfk3:9093
KAFKA_ADVERTISED_HOST_NAME: kfk3
KAFKA_ADVERTISED_PORT: 9092
KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181
JMX_PORT: 9988
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /dzz/kfk3:/kafka/kafka\-logs\-kfk3
external_links:
- zoo1
- zoo2
- zoo3
networks:
- dcset_zoomy
kafka-manager:
image: sheepkiller/kafka-manager:latest
restart: always
container_name: kafka-manager
hostname: kafka-manager
ports:
- 9000:9000
links:
- kfk1
- kfk2
- kfk3
external_links:
- zoo1
- zoo2
- zoo3
environment:
ZK_HOSTS: zoo1:2181,zoo2:2181,zoo3:2181
KAFKA_BROKERS: kfk1:9092,kfk2:9092,kfk3:9092
APPLICATION_SECRET: letmein
KM_ARGS: -Djava.net.preferIPv4Stack=true
networks:
- dcset_zoomy
networks:
dcset_zoomy:
external: true
执行
docker-compose up -d
查看
docker ps
验收
网页打开ip:9000
新增
save后
有3个brokers,yes!
kafka-topics --list --zookeeper ip自己:2181 查看主题
kafka-topics --delete --zookeeper ip自己:2181 --topic test_logs 删除主题
发消息
进入kfk1
#创建主题topic
unset JMX_PORT;kafka-topics.sh --create --zookeeper zoo1:2181,zoo2:2181,zoo3:2181 --replication-factor 3 --partitions 1 --topic mykfk
#生产者发送消息
unset JMX_PORT;kafka-console-producer.sh --broker-list 192.168.56.106:9092 --topic mykfk
打开另一终端进入kfk2
#消费者订阅主题
unset JMX_PORT;kafka-console-consumer.sh --bootstrap-server 192.168.56.106:9092 --topic mykfk
然后发送消息
消息发送成功~! kafka的节点信息可以去zk查看
选择进入zoo1查看
散花!