docker部署kafka

docker部署kafka

       最近接了一个需求,需要开发一个脚本,消费kafka队列,本地开发调试,需要模拟kafka生产数据,所以决定用docker部署kafka来进行调试,直接用docker-compose进行部署,部署配置如下

version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    container_name: zookeeper_compose
    volumes:
      - /home/data/kafka/data:/data
    ports:
      - "2181:2181"
  kafka:
    image: wurstmeister/kafka
    container_name: kafka_compose
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 自己的IP
      KAFKA_MESSAGE_MAX_BYTES: 2000000
      KAFKA_CREATE_TOPICS: "test"
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    volumes:
      - /home/data/kafka/log:/kafka
      - /var/run/docker.sock:/var/run/docker.sock
  kafka-manager:
    image: sheepkiller/kafka-manager
    container_name: kafka_manager_compose
    ports:
      - 9020:9000
    environment:
      ZK_HOSTS: zookeeper:2181

这个配置我们指定/home/data/kafka/data目录挂载zookeeper的data目录,/home/data/kafka/log目录挂载kafka日志目录,这个编排文件部署了3个服务,分别是zookeeper、kafka、kafka-manager三个服务,我们需要把IP替换成自己的IP,我们可以先试试kafka部署是否成功,输入以下命令进入到kafka

docker exec -it kafka_compose /bin/bash

然后我们进入到kafka目录

cd /opt/kafka/bin

我们先创建一个主题,名字为test

kafka-topics.sh --create --zookeeper 自己的IP:2181 --replication-factor 1 --partitions 8 --topic test

当前窗口生产对象

kafka-console-producer.sh --broker-list 自己的IP:9092 --topic test

另开一个窗口,创建消费对象

kafka-console-consumer.sh --bootstrap-server 自己的IP:9092 --topic test --from-beginning

这样我们就可以实现kafka生产以及消费过程。



0条评论

发表评论