docker部署kafka实战

目录

一、部署kafaka、zookeeper

二、测试信息发送与接收

三、kafka进阶


一、部署kafaka、zookeeper

请提前安装docker、docker-compose

安装docker:docker--安装docker-ce-CSDN博客

安装docker-compose: 安装docker-compose_安装 docker-compose-CSDN博客

docker-compose部署,建议用docker-compose部署而不是单容器部署,快速便捷。(yml文件:docker部署kafka的方法步骤_docker_脚本之家

version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    volumes:
      - ./data:/data
    ports:
      - "2181:2181"
       
  kafka:
    image: wurstmeister/kafka
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME:127.0.0.1
      KAFKA_MESSAGE_MAX_BYTES: 2000000
      KAFKA_CREATE_TOPICS: "Topic1:1:3,Topic2:1:1:compact"
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    volumes:
      - ./kafka-logs:/kafka
      - /var/run/docker.sock:/var/run/docker.sock
 
  kafka-manager:
    image: sheepkiller/kafka-manager
    ports:
      - 9020:9000
    environment:
      ZK_HOSTS: zookeeper:2181

设置容器运行机制为自启动

#docker update --restart=always 容器名/容器ID
[root@kafka_50 ~]# docker update --restart=always e398ce29cbd2 f0ef33856875 e06af2230915

重启虚拟机kafka-manage无法启动,docker logs 容器名,查看容器日志,发现报错This application is already running (Or delete /kafka-manager-1.3.1.8/RUNNING_PID file).
,提示kafka已经运行或者需要删除RUNNING_PID文件需要,find命令找并删除RUNNING_PID文件。

[root@kafka_50 ~]# find / -name RUNNING_PID
/var/lib/docker/overlay2/1ac3b62babe69290c14730892564d317e4dc4c443d298d6804ab20290cb48c80/diff/kafka-manager-1.3.1.8/RUNNING_PID
[root@kafka_50 ~]# rm -rf /var/lib/docker/overlay2/1ac3b62babe69290c14730892564d317e4dc4c443d298d6804ab20290cb48c80/diff/kafka-manager-1.3.1.8/RUNNING_PID

二、测试信息发送与接收

查看容器信息,注意容器名

[root@kafka_50 ~]# docker ps
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS                                                NAMES
e398ce29cbd2        wurstmeister/zookeeper      "/bin/sh -c '/usr/sb…"   7 days ago          Up About an hour    22/tcp, 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp   kafka-zookeeper-1
f0ef33856875        wurstmeister/kafka          "start-kafka.sh"         7 days ago          Up About an hour    0.0.0.0:9092->9092/tcp                               kafka-kafka-1
e06af2230915        sheepkiller/kafka-manager   "./start-kafka-manag…"   7 days ago          Up About an hour    0.0.0.0:9020->9000/tcp                               kafka-kafka-manager-1

创建名为test_topic的topic主题、生产者

# 进入kafka 容器后,创建topic
# kafka-topics.sh --create --topic <topic_name> --partitions 1 --replication-factor 1 --zookeeper zookeeper:2181
            
[root@kafka_50 ~]# docker exec -it kafka-kafka-1 /bin/bash      # 进入kafka 容器

bash-5.1# kafka-topics.sh --create --topic test_topic --partitions 1 --replication-factor     #创建名为test_topic的主题
WARNING: Due to limitations in metric names, topics with a period ('.') or underscore ('_') could collide. To avoid issues it is best to use either, but not both.        = #警告无需理会,关于".""_"的使用规范
Created topic test_topic.                                                                         
 
#在test_topic主题下创建生产者
bash-5.1# kafka-console-producer.sh --broker-list localhost:9092 --topic test_topic
>hello   #随便发送测试信息
>hello123

新建一个终端创建消费者

[root@kafka_50 ~]# docker exec -it kafka-kafka-1 /bin/bash

#创建消费者
bash-5.1# kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test_topic
hello    #成功接收到生成者发送的信息,接收实时数据,历史数据不会展示
hello123

#消费者接收历史信息参数--from-beginning
bash-5.1# kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test_topic --from-beginning

三、kafka进阶

......

参考文档:

docker 部署kafka-CSDN博客   测试信息

docker部署kafka的方法步骤_docker_脚本之家   部署yml文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值