docker安装单机kafka

快速安装用于测试之类的用途

#笔者版本 ZOOKEEPER_VERSION=3.4.13 //DockerVersion=18.03.1-ee-3
#拉zookeeper镜像
docker pull wurstmeister/zookeeper
#笔者版本 KAFKA_VERSION=2.8.1 //SCALA_VERSION=2.13 //GLIBC_VERSION=2.31-r0
#拉kafka镜像
docker pull wurstmeister/kafka
#启动zookeeper
docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
#启动kafuka
docker run -d --name kafka \
-p 9092:9092 \
-e KAFKA_BROKER_ID=0 \
-e KAFKA_ZOOKEEPER_CONNECT=【你的ip】:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://【你的ip】:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 wurstmeister/kafka

#进入容器
docker exec -it 【你的容器id】 /bin/bash
cd opt/kafka/bin
#单机方式:创建一个主题
kafka-topics.sh --create --zookeeper 【你的ip】:2181 --replication-factor 1 --partitions 1 --topic mykafka
#运行一个生产者
kafka-console-producer.sh --broker-list localhost:9092 --topic mykafka
#运行一个消费者
kafka-console-consumer.sh --bootstrap-server 【你的ip】:9092 --topic mykafka --from-beginning
#此处便完成了基本的测试环境


#设置默认分区
vi opt/kafka/config/server.properties
修改:num.partitions=2

#指定分区数量
./kafka-topics.sh --zookeeper 【你的ip】:2181 --alter --partitions 3 --topic topicname

zookeeper在kafka中的作用:
Kafka主要使用ZooKeeper来保存它的元数据、监控Broker和分区的存活状态,并利用ZooKeeper来进行选举

### 部署单节点Kafka使用Docker 为了在单机环境中利用Docker部署单节点Kafka,可以遵循如下方法。此过程不仅涉及启动Kafka本身,还涉及到其依赖组件ZooKeeper的配置[^3]。 #### 准备工作 确保本地已安装并设置好Docker环境。如果尚未完成这一步骤,请先访问[Docker官方文档](https://docs.docker.com/get-docker/)按照指示操作。 #### 创建`docker-compose.yml` 创建名为`docker-compose.yml`文件用于定义服务组合。该文件将描述所需的服务及其参数,包括但不限于版本号、镜像名称以及端口映射等信息[^2]: ```yaml version: '2' services: zookeeper: image: wurstmeister/zookeeper:latest ports: - "2181:2181" kafka: image: wurstmeister/kafka:latest ports: - "9092:9092" environment: KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 depends_on: - zookeeper ``` 上述YAML片段指定了两个主要容器——一个是运行ZooKeeper实例的容器,另一个则是连接到前者并通过指定监听器提供外部访问路径的Kafka服务器实例。 #### 启动服务 通过命令行进入包含`docker-compose.yml`文件所在的目录,并执行以下指令来启动所有必要的服务: ```bash docker-compose up -d ``` 这条命令会以前台模式异步启动所有的服务进程,并将其置于后台持续运行。此时应该能够看到类似于下面的日志输出,表明各个服务正在正常初始化中。 #### 测试连接 一旦确认Kafka集群已经成功上线,则可以通过生产者/消费者API测试消息传递功能是否正常运作。例如,在另一终端窗口输入下列Python脚本验证发送接收情况: ```python from kafka import KafkaProducer, KafkaConsumer producer = KafkaProducer(bootstrap_servers='localhost:9092') consumer = KafkaConsumer('test-topic', bootstrap_servers='localhost:9092') for i in range(5): producer.send('test-topic', b'test message %d' % i) print("Messages received:") for msg in consumer: print(msg.value.decode()) break ``` 这段简单的程序首先向主题`test-topic`发布几条记录,接着尝试从中读取最新一条数据作为反馈展示给用户查看。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值