docker安装kafka

docker安装kafka

中文

资源

首先参照这篇文章,文章

另外,一篇,直接使用docker安装

安装

docker-compose内容:

cat > docker-compose.yaml <<EOL

version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
  kafka:
    image: wurstmeister/kafka
    depends_on: [ zookeeper ]
    ports:
      - "9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

说明:上述内容,来自于github仓库,但是,图懒,更换了kafka在构建过程。尝试了,能正常的安装成功。

参数:

KAFKA_ADVERTISED_HOST_NAME: 由于测试,并未对外提供服务,只填了127.0.0.1

KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1 自己把自己坑了,因该填机器的真实ip,才能对外提供正常服务

将上述文件放到一个文件夹中,如kafka,然后该名称,将作为docker前缀。

使用以下命令启动:

docker-compose up -d

测试

进入kafka容器进行测试:

# (kafka_)kafka_1  括号内的是docker-compose.yaml文件所在的目录
docker exec -it kafka_kafka_1 bash

#创建一个topic
$KAFKA_HOME/bin/kafka-topics.sh --create --topic test --partitions 4 --zookeeper kafka_zookeeper_1:2181 --replication-factor 1 
# 注意–zookeeper后面的参数为,容器的name

#查看topic
$KAFKA_HOME/bin/kafka-topics.sh --zookeeper kafka_zookeeper_1:2181 --describe --topic test

#发布信息
bash-4.4# $KAFKA_HOME/bin/kafka-console-producer.sh --topic=test --broker-list kafka_kafka_1:9092
>ni
>haha


#接收信息

bash-4.4# $KAFKA_HOME/bin/kafka-console-consumer.sh --bootstrap-server kafka_kafka_1:9092 --from-beginning --topic test
ni
haha

kafka集群管理界面

docker run -itd --name=kafka-manager -p 9000:9000 -e ZK_HOSTS="192.168.220.150:2181" sheepkiller/kafka-manager
# 访问 http://localhost:9000/

反思

上述过程,其实是利用了别人做好的现成的docker镜像,为了快速搭建,应该自己了解,最好使用官网镜像来构建。