公司人物画像项目数据量非常大,技术上准备使用kafka,以前只使用过RabbitMq,但不是适合大数据的处理,所以加强学习下kafka,希望今年能有很好的提升。
公司开发环境Windows10系统,以前使用过Docker安装过redis,mongoDb感觉使用非常方便,所以打算继续使用Docker安装kafka;至于Docker安装很简单,到官网下载安装即可https://www.docker.com/get-started。
1. 启动zookeeper容器
docker run -d --name zookeeper -p 2181:2181 -t dongchen/zookeeper
2. 启动kafka容器
docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=172.30.10.5:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.30.10.5:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t dongchen/kafka
中间两个参数的172.30.10.5改为宿主机器的IP地址,如果不这么设置,可能会导致在别的机器上访问不到kafka。
3. 进入kafka容器的命令行
docker exec -ti kafka /bin/bash
4. 进入kafka所在目录
cd opt/kafka_2.12-2.2.1
5. 创建topic
./bin/kafka-topics.sh --create --zookeeper 172.30.10.5:2181 --replication-factor 1 --partitions 1 --topic mykafka
6. 查看topic的状态
bin/kafka-topics.sh --describe --zookeeper 172.30.10.5:2181 --topic mykafka
7. 发送消息
./bin/kafka-console-producer.sh --broker-list 172.30.10.5:9092 --topic mykafka
8. 接收消息
./bin/kafka-console-consumer.sh --bootstrap-server 172.30.10.5:9092 --topic mykafka --from-beginning
9. 集群搭建
docker run -d --name kafka1 -p 9093:9093 -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=172.30.10.5:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.30.10.5:9093 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9093 -t dongchen/kafka
10. 创建Replication为2,Partition为2的topic
在kafka容器中的opt/kafka_2.12-2.2.1/目录下输入
bin/kafka-topics.sh --create --zookeeper 172.30.10.5:2181 --replication-factor 2 --partitions 2 --topic mykafka