使用docker安装kafka

这篇博客详细介绍了如何使用Docker安装和配置Kafka,包括启动Zookeeper容器、设置Kafka容器参数、测试Kafka、搭建集群、创建Replication为2,Partition为2的topic以及查看topic状态。关键步骤包括将容器内的IP设置为宿主机IP以确保可访问性,并通过调整brokerId和端口实现集群搭建。

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

参考:https://blog.youkuaiyun.com/snowcity1231/article/details/54946857

1. 启动zookeeper容器

docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper

2. 启动kafka容器

docker run  -d --name kafka \
-p 9092:9092 \
-e KAFKA_BROKER_ID=0 \ 
-e KAFKA_ZOOKEEPER_CONNECT=192.168.204.128:2181 \ 
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.204.128:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka 

这里面主要设置了4个参数

KAFKA_BROKER_ID=0               
KAFKA_ZOOKEEPER_CONNECT=192.168.204.128:2181
KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.204.128:9092
KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092

中间两个参数的192.168.204.128改为宿主机器的IP地址,如果不这么设置,可能会导致在别的机器上访问不到kafka。

3. 测试kafka

进入kafka容器的命令行

docker exec -ti kafka /bin/bash

进入kafka所在目录

cd opt/kafka_2.12-1.1.0/

后面不再赘述,可参考前一篇文章https://blog.youkuaiyun.com/lblblblblzdx/article/details/80548157

4. 集群搭建

使用docker命令可快速在同一台机器搭建多个kafka,只需要改变brokerId和端口

docker run -d --name kafka1 \
-p 9093:9093 \
-e KAFKA_BROKER_ID=1 \
-e KAFKA_ZOOKEEPER_CONNECT=192.168.204.128:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.204.128:9093 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9093 -t wurstmeister/kafka

5. 创建Replication为2,Partition为2的topic

在kafka容器中的opt/kafka_2.12-1.1.0/目录下输入

bin/kafka-topics.sh --create --zookeeper 192.168.204.128:2181 --replication-factor 2 --partitions 2 --topic partopic

6. 查看topic的状态

在kafka容器中的opt/kafka_2.12-1.1.0/目录下输入

bin/kafka-topics.sh --describe --zookeeper 192.168.204.128:2181 --topic partopic

输出结果:

Topic:partopic  PartitionCount:2    ReplicationFactor:2 Configs:
    Topic: partopic Partition: 0    Leader: 0   Replicas: 0,1   Isr: 0,1
    Topic: partopic Partition: 1    Leader: 0   Replicas: 1,0   Isr: 0,1

显示每个分区的Leader机器为broker0,在broker0和1上具有备份,Isr代表存活的备份机器中存活的。
当停掉kafka1后,

docker stop kafka1

再查看topic状态,输出结果:

Topic:partopic  PartitionCount:2    ReplicationFactor:2 Configs:
    Topic: partopic Partition: 0    Leader: 0   Replicas: 0,1   Isr: 0
    Topic: partopic Partition: 1    Leader: 0   Replicas: 1,0   Isr: 0
### 使用Docker安装Kafka的教程 #### 准备工作 为了确保顺利安装,需先确认已正确设置好Docker环境。这一步骤对于任何打算利用Docker来部署服务的应用程序来说都是必不可少的前提条件[^2]。 #### 获取官方镜像 从Docker Hub拉取最新的Apache Kafka镜像文件,这是启动集群前的重要准备工作之一。通常情况下,推荐使用`confluentinc/cp-kafka`作为首选项,因为它由Confluent公司维护,提供了稳定可靠的版本支持。 ```bash docker pull confluentinc/cp-kafka:latest ``` #### 创建网络桥接 为了让ZooKeeper与Kafka实例之间能够相互通信,创建一个新的自定义网桥是非常必要的操作。此动作有助于简化后续容器间的连接配置过程。 ```bash docker network create kafka-net ``` #### 启动ZooKeeper服务 由于Kafka依赖于ZooKeeper来进行协调管理,因此需要先行启动一个ZooKeeper实例。这里采用的是Confluent Platform所提供的官方镜像,并将其加入到之前建立好的网络中去。 ```bash docker run -d \ --name=zookeeper \ --network=kafka-net \ -e ZOOKEEPER_CLIENT_PORT=2181 \ confluentinc/cp-zookeeper:latest ``` #### 配置并启动Kafka Broker 接下来便是重点——启动Kafka broker本身了。需要注意的一点是在启动参数里指定了`KAFKA_ADVERTISED_LISTENERS`环境变量,用于告知外部应用程序如何访问当前节点上的Kafka服务[^5]。 ```bash docker run -d \ --name=kafka \ --network=kafka-net \ -e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \ -e KAFKA_ADVERTISED_LISTENERS.PLAINTEXT_HOST=localhost:9092 \ -e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \ confluentinc/cp-kafka:latest ``` 此时已经成功完成了基于Docker环境下Kafka的基本搭建流程。如果想要进一步探索更多高级特性比如安全性增强,则可以根据具体需求调整相应配置选项。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值