Docker Compose 部署 Kafka的KRaft模式 不用依赖 Zookeeper

devtools/2024/10/22 12:33:33/

前言

从 Kafka 2.8 开始,KRaft 模式允许 Kafka 在没有 Zookeeper 的情况下运行。本文将部署单机模式

dockercomposeyml_3">1.新建 docker-compose.yml

vim docker-compose.yml

services:kafka:image: bitnami/kafka:3.6container_name: kafkaports:- "19092:9092"environment:- KAFKA_CFG_PROCESS_ROLES=broker,controller- KAFKA_CFG_NODE_ID=1- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@localhost:9093- KAFKA_CFG_LISTENERS=PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT- KAFKA_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER- KAFKA_CFG_LOG_DIRS=/opt/kafka-logs- KAFKA_CFG_NUM_PARTITIONS=1- KAFKA_CFG_DEFAULT_REPLICATION_FACTOR=1- KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR=1- KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=1- KAFKA_CFG_TRANSACTION_STATE_LOG_MIN_ISR=1- KAFKA_CFG_MIN_INSYNC_REPLICAS=1- ALLOW_PLAINTEXT_LISTENER=yesvolumes:- kafka-data:/opt/kafka-logsnetworks:- kafka-networknetworks:kafka-network:driver: bridgevolumes:kafka-data:name: my-kafka-data

2.启动 Kafka

docker compose -f docker-compose.yml up -d

首次运行会拉取镜像,耐心等待…

3.验证 Kafka 启动

3.1 查看 Kafka 的日志:

docker logs kafka

有以下报错(如果没有报错 则略过此步骤)
在这里插入图片描述
查看 宿主机 数据卷地址

docker inspect kafka |grep -i Mounts -A 10

在这里插入图片描述

确认宿主机上挂载的数据卷目录的权限

sudo ls -ld /var/lib/docker/volumes/my-kafka-data/_data

调整宿主机权限

sudo chown -R 1001:1001 /var/lib/docker/volumes/my-kafka-data/_data
sudo chmod -R 755       /var/lib/docker/volumes/my-kafka-data/_data

再次启动

docker compose -f docker-compose.yml up -d

3.2 查看容器

docker ps

在这里插入图片描述

4.测试

4.1 进入 Kafka 容器

docker exec -it --user root kafka bash

4.2 创建 Kafka 主题
使用 kafka-topics.sh 命令来创建主题。假设我们创建一个名为 test-topic 的主题:

kafka-topics.sh --bootstrap-server localhost:9092 --create --topic test-topic --partitions 1 --replication-factor 1

4.3 查看现有的 Kafka 主题

kafka-topics.sh --bootstrap-server localhost:9092 --list

在这里插入图片描述
4.4 生产消息到 Kafka 主题

kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test-topic

4.5 消费 Kafka 主题
加一个新的终端,再进容器

docker exec -it --user root kafka bash
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test-topic --from-beginning

切换之前的终端,输入比如

a
b
c
d

下图所示成功消费
在这里插入图片描述

至此 部署完成


http://www.ppmy.cn/devtools/104147.html

相关文章

【机器学习】数据预处理-特征工程与特征选择

目录 一、特征工程 二、数据变换 1.变换 2.归一化 三、数据清洗 1.异常数据 2.数据清洗 四、特征选择 1.Filter过滤法 2.Wrapper包裹法 ... 3.Embedded嵌入法 ... 五、降维算法 1.SVD 2.PCA 一、特征工程 特征工程就是从原始数据提取特征的过程,这些…

C语言:字符串存在哪?

文章目录 0x10x11 栈上(Stack)0x12 堆上(Heap)0x13 常量存储区(Constant)0x20x21 常量区0x22 栈区 0x1 0x11 栈上(Stack) 局部变量(包括在函数内部定义的数组和变量&am…

18044 成绩等级评分

### 思路 1. 从键盘输入一个整数成绩。 2. 判断成绩是否在0到100之间: - 如果不在范围内,输出“error”。 - 如果在范围内,根据成绩范围输出对应的等级: - 90分以上为A - 80到89分为B - 70到79分为C - …

可以根据手机的折叠状态改变播放音效:nova Flip 的妙趣音效

由于折叠机最基础的“可折叠”属性,导致折叠机的扬声器相对于人的位置来说会存在更多的变化,在不同的折叠状态下,听感方面可能就会大有不同。 nova Flip手机利用这一特性,首次根据折叠形态差异,自适应了不同形态的音效…

tomcat 调优

一、Tomcat 调优的关键领域 1. **连接数和线程池配置** 2. **JVM 配置和 GC 调优** 3. **Tomcat 内存调优** 4. **文件和网络配置** 5. **Tomcat 缓存和压缩设置** 二、连接数和线程池配置 Tomcat 的连接数和线程池配置对服务器的并发处理能力有直接影响。默认情况下&#x…

郑州建站网页手机版

随着移动互联网的迅猛发展,越来越多的企业和个人开始重视手机网页的建设。在郑州,这一趋势尤为明显,搭建手机网页已经成为提升品牌形象和吸引客户的重要方式。本文将就郑州建站网页手机版的现状、重要性及注意事项进行探讨。 首先&#xff0c…

取模+背包

前言:一开始我想错了,一开始我想的是直接统计每一项模完后的和,我们只要能够取到一半,那么就有解,但是时间复杂度太大了 我们做推导 x y s u m x y sum xysum x − y k ∗ n x - y k * n x−yk∗n 那么我们可…

win11 更新后导致 docker 启动报虚拟机错误解决办法

1. 确保勾选了 hyper-v 和 适用于 Linux 的 windows 子系统 2. 管理员运行 powershell, 挨个执行以下4个命令后,重启电脑 # 重新启用 WSL 和 VirtualMachine 功能:DISM /online /enable-feature /featurename:VirtualMachinePlatform /norestartDISM /o…