单机使用docker容器搭建kafka集群

本文介绍了如何在一台Ubuntu 18.04服务器上,通过Docker技术搭建Kafka集群。首先修改Docker镜像源以加速下载,然后启动Zookeeper容器,接着依次启动三个Kafka容器,配置不同的BROKER_ID和监听端口。通过Kafka命令行工具创建并检查topic,以及生产和消费消息,验证集群工作正常。最后提到了删除Topic的注意事项和实际操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        想学习kafka集群的知识,却没有那么多的服务器来部署kafka集群,docker容器技术给希望,本文整理了各位大神的文章,记录下使用docker技术在一台机器上搭建kafka集群。

系统环境:

  • 服务器一台,2核8G,ubuntu18.04操作系统
  • docker版本:20.10.8

部署

 2.1 修改docker镜像源

        国外镜像源下载比较慢,所以修改docker的镜像源为国内镜像。

vim /etc/docker/daemon.json

        添加以下内容

{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
        重新加载docker daemon,并且重启docker服务

systemctl daemon-reload
service docker restart

  2.2 安装docker容器版kafka集群

        具体安装命令如下:

        modify 2021.09.06,新增JMX_PORT端口环境变量,部署kafka的监控工具

# 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
# 启动kafka容器,注意需要启动三台,注意端口的映射,都是映射到9092
# 第一台
docker run -it --name kafka01 -p 19092:9092 -d -e KAFKA_BROKER_ID=0 -e JMX_PORT=9988 -e KAFKA_ZOOKEEPER_CONNECT=106.14.180.13:12181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://106.14.180.13:19092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 wurstmeister/kafka:latest

# 第二台
docker run -it --name kafka02 -p 19093:9092 -d -e KAFKA_BROKER_ID=1 -e JMX_PORT=9988 -e KAFKA_ZOOKEEPER_CONNECT=106.14.180.13:12181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://106.14.180.13:19093 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 wurstmeister/kafka:latest


# 第三台
docker run -it --name kafka03 -p 19094:9092 -d -e KAFKA_BROKER_ID=2 -e JMX_PORT=9988 -e KAFKA_ZOOKEEPER_CONNECT=106.14.180.13:12181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://106.14.180.13:19094 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 wurstmeister/kafka:latest

          测试是否部署成功

docker ps -a

       测试kafka命令,新建 topic,并向topic发送消息,使用消费者命令获取消费消息。kafka命令的安装,可以请教百度,直接安装个kafka版本,进入到bin目录下即可。

# 创建topic名称为first,3个分区,1个副本
./kafka-topics.sh --zookeeper ${本机IP}:12181 --create --topic first --replication-factor 1 --partitions 3

# 查看first此topic信息
./kafka-topics.sh --zookeeper ${本机IP}:12181 --describe --topic first
Topic: first	PartitionCount: 3	ReplicationFactor: 1	Configs: 
	Topic: first	Partition: 0	Leader: 2	Replicas: 2	Isr: 2
	Topic: first	Partition: 1	Leader: 0	Replicas: 0	Isr: 0
	Topic: first	Partition: 2	Leader: 1	Replicas: 1	Isr: 1


# 调用生产者生产消息
./kafka-console-producer.sh --broker-list ${本机IP}:19092,${本机IP}:19093,${本机IP}:19094 --topic first
# 调用消费者消费消息,from-beginning表示读取全部的消息
./kafka-console-consumer.sh --bootstrap-server ${本机IP}:19092,${本机IP}:19093,${本机IP}:19094 --topic first --from-beginning

小Tip

        删除Topic

./kafka-topic.sh --zookeeper 192.168.233.129:12181 --delete --topic second

         可以看到second这个topic并没有真正删除,只是标记为deletion,如果需要真正删除,可以修改配置文件/config/server.properties中delete.topic.enable=true

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值