Kafka简介
Kafka是一种消息队列,主要用来处理大量数据状态下的消息队列,一般用来做日志的处理。既然是消息队列,那么Kafka也就拥有消息队列的相应的特性了。
1.Kafka的安装和使用
docker安装可以看这篇文章:Docker&Docker命令学习
# docker直接拉取kafka和zookeeper的镜像
docker pull wurstmeister/kafka
docker pull wurstmeister/zookeeper
# 首先需要启动zookeeper,如果不先启动,启动kafka没有地方注册消息
docker run -it --name zookeeper -p 12181:2181 -d wurstmeister/zookeeper:latest
docker以交互模式 name为zookeeper 指定端口2181 后台运行
[root@kafka ~]# docker run -it --name zookeeper -p 12181:2181 -d wurstmeister/zookeeper:latest
56b476a5f2bca34c3464b70380684cba2e8426fbcf55f9a48b22fe3484dab712
[root@kafka ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
56b476a5f2bc wurstmeister/zookeeper:latest "/bin/sh -c '/usr/sb…" 35 seconds ago Up 33 seconds 22/tcp, 2888/tcp, 3888/tcp, 0.0.0.0:12181->2181/tcp zookeeper
# 启动kafka容器,注意需要启动三台,注意端口的映射,都是映射到9092
第一台:
[root@kafka ~]# docker run -it --name kafka01 -p 19092:9092 -d -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.17.129:12181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.17.129:19092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 wurstmeister/kafka:latest
253dad66cb84deae0ec6dd27f68ee00b66217812ff7e9b4c5eb7ac5679a8603a
第二台:
[root@kafka ~]# docker run -it --name kafka02 -p 19093:9092 -d -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=192.168.17.129:12181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.17.129:19093 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 wurstmeister/kafka:latest
6037e92f7e67239f51f35338b0ee3d2780371be6a9d60b400954fcb04c217f29
第三台:
[root@kafka ~]# docker run -it --name kafka03 -p 19094:9092 -d -e KAFKA_BROKER_ID=2 -e KAFKA_ZOOKEEPER_CONNECT=192.168.17.129:12181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.17.129:19094 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 wurstmeister/kafka:latest
44102bd3b99198f6dd1f4e050750c6687a4db66cfbc3c8ea47eda51934c1966e
上面端口的映射注意都是映射到Kafka的9092端口上!
到目前为止利用docker部署kafka告一段落