Docker/Docker-Compose 安装 Kafka

安装环境

安装 Zookeeper

1.下载镜像

docker pull zookeeper:3.7

2.启动

docker run -d --name zookeeper -p 2181:2181 -e TZ="Asia/Shanghai" -v /opt/zookeeper/data:/data --restart always zookeeper:3.7

安装 Kafka

1.下载镜像

docker pull wurstmeister/kafka

2.启动

docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=Zookeeper-IP:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://IP:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -e TZ="Asia/Shanghai" wurstmeister/kafka

启动环境变量参数说明

变量描述
KAFKA_BROKER_IDkafka集群中每个kafka都有一个BROKER_ID来区分自己
KAFKA_ADVERTISED_LISTENERSkafka的地址和端口,用于向zookeeper注册
KAFKA_ZOOKEEPER_CONNECTzookeeper地址
KAFKA_LISTENERSkafka监听端口
TZ容器时区

安装 Manager

1.下载镜像

docker pull sheepkiller/kafka-manager

2.启动

docker run -d --name kfk-manager --restart always -p 9000:9000 -e ZK_HOSTS=<这里换成你的zookeeper地址和端口> sheepkiller/kafka-manager

Docker-Compose 安装 Kafka

新建目录

mkdir kafka

新建 docker-compose.yml

version: '3.5'
services:
  zookeeper:
    image: wurstmeister/zookeeper   ## 镜像
    container_name: zookeeper
    ports:
      - "2181:2181"                 ## 对外暴露的端口号
  kafka:
    image: wurstmeister/kafka       ## 镜像
    container_name: kafka
    volumes: 
        - /etc/localtime:/etc/localtime ## 挂载位置(kafka镜像和宿主机器之间时间保持一直)
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1         ## 修改:宿主机IP
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181       ## 卡夫卡运行是基于zookeeper的
      KAFKA_ADVERTISED_PORT: 9092
      KAFKA_LOG_RETENTION_HOURS: 120
      KAFKA_MESSAGE_MAX_BYTES: 10000000
      KAFKA_REPLICA_FETCH_MAX_BYTES: 10000000
      KAFKA_GROUP_MAX_SESSION_TIMEOUT_MS: 60000
      KAFKA_NUM_PARTITIONS: 3
      KAFKA_DELETE_RETENTION_MS: 1000
  kafka-manager:
    image: sheepkiller/kafka-manager                ## 镜像:开源的web管理kafka集群的界面
    container_name: kafka-manager
    environment:
        ZK_HOSTS: 127.0.0.1                         ## 修改:宿主机IP
    ports:  
      - "9009:9000"                                 ## 暴露端口 9000这个端口冲突太多

启动

docker-compose up -d --build

测试

1.通过容器名称进入到 kafka 容器中

docker exec -it kafka /bin/bash

2.创建一个名称为 mingyue 的 topic

kafka-topics.sh --create --topic mingyue \
--zookeeper zookeeper:2181 --replication-factor 1 \
--partitions 1

输出日志:

Created topic mingyue.

3.查看刚刚创建的 topic 信息

kafka-topics.sh --zookeeper zookeeper:2181 --describe --topic mingyue

输出日志:

Topic: mingyue	TopicId: jn6EBXBFStqH4s1zTERmnQ	PartitionCount: 1	ReplicationFactor: 1	Configs: 
Topic: mingyue	Partition: 0	Leader: 1001	Replicas: 1001	Isr: 1001

4.打开生产者发送消息

kafka-console-producer.sh --topic=mingyue \
--broker-list kafka:9092

5.消费者接收消息

kafka-console-consumer.sh \
--bootstrap-server kafka:9092 \
--from-beginning --topic mingyue

输入日志:

# 生产者发送消息
bash-5.1# kafka-console-producer.sh --topic=mingyue \
> --broker-list kafka:9092
>hahah
>love
>mingyue

# 消费者接收消息
bash-5.1# kafka-console-consumer.sh \
> --bootstrap-server kafka:9092 \
> --from-beginning --topic mingyue
hahah
love
mingyue
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Strive_MY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值