赞
踩
注意:切记修改命令行中的内网ip和外网ip
docker
中拉取 kafka
和 zookeeper
镜像[root@VM-24-5-centos ~]# docker pull wurstmeister/kafka
[root@VM-24-5-centos ~]# docker pull wurstmeister/zookeeper
zookeeper
[root@VM-24-5-centos ~]# docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
kafka
## KAFKA_ZOOKEEPER_CONNECT 需要修改成zookeeper所在容器IP(可以使用ifconfig进行查看),容器之间是可以通过IP访问的,但是不能填写成虚拟IP
[root@VM-24-5-centos ~]# docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=172.17.0.1:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime -t wurstmeister/kafka:latest
[root@VM-24-5-centos ~]# docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=(服务器外网IP):2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://(服务器外网IP):9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime -t wurstmeister/kafka:latest
# 2.然后再本机的hosts文件中中添加 服务器的外网ip和对应的服务器名字,例如:(服务器外网IP) VM-24-5-centos
# 3.java代码中直接使用代码:
# // 设置配置文件的方式
Properties properties = new Properties();
# // 设置链接的主服务器
# // 连接当前远程的服务器出现了url错误,需要进行修改,切记加上9092
properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "VM-24-5-centos:9092");
[root@VM-24-5-centos ~]# docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=(服务器内网IP):2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://(服务器外网IP):9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka:latest
kafka
的容器ID[root@VM-24-5-centos ~]# docker ps |grep kafka
kafka
和 zookeeper
是否启动成功[root@VM-24-5-centos ~]# docker ps
kafka
容器中[root@VM-24-5-centos ~]# docker exec -it b632402293ba /bin/bash
# 查看topic的命令
bash-5.1# /opt/kafka/bin/kafka-topics.sh
# 查看生产者端的命令
bash-5.1# /opt/kafka/bin/kafka-console-producer.sh
# 查看消费者端的命令
bash-5.1# /opt/kafka/bin/kafka-console-producer.sh
topic
bash-5.1# /opt/kafka/bin/kafka-topics.sh --zookeeper (服务器内网IP):2181 --create --replication-factor 1 --partitions 1 --topic mykafkadk
Created topic mykafkadk. # 表示创建成功
topic
的详细描述信息bash-5.1# /opt/kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 --topic mykafkadk --describe
Topic: mykafkadk TopicId: DrgX_OZ_TBikrvzxiTO-9Q PartitionCount: 1 ReplicationFactor: 1 Configs: segment.bytes=1073741824
Topic: mykafkadk Partition: 0 Leader: 1 Replicas: 1 Isr: 1
topic
bash-5.1# /opt/kafka/bin/kafka-topics.sh --zookeeper 172.17.0.1:2181 --list
mykafkadk
topic
中进行发送消息bash-5.1# /opt/kafka/bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic mykafkadk
>1
>2
topic
中的消息只会消费连接上之后生产者发送的消息
bash-5.1# /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mykafkadk
2
会消费所有的发送到broker中的消息
bash-5.1# /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mykafkadk --from-beginning
1
2
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。