梦应逍遥 发表于 2024-8-6 22:20:30

Docker服务器上部署最新版Kafka

Docker服务器上部署最新版Kafka

博客地址:TMDOG666的博客

前提条件

在开始之前,请确保你已经安装了以下环境:

[*]Docker
创建目次

起首,我们必要创建一个目次来存储Kafka的相关数据:
mkdir -p /data/deploy/kafkaCluster/kraft
创建docker-compose.yaml文件

在你自己的目次下创建一个名为docker-compose.yaml的文件,并添加以下内容:
我是在root目次下创建了kafka_config文件夹
https://i-blog.csdnimg.cn/direct/cd5a7943e3d04e83acfcda71d248a159.png
在docker-compose.yaml下:
version: "3"
services:
   kafka:
   image: 'bitnami/kafka:latest'
   user: root
   environment:
       - KAFKA_ENABLE_KRAFT=yes
       - KAFKA_CFG_PROCESS_ROLES=broker,controller
       - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
       - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
       - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
       - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://ip:9092
       - KAFKA_BROKER_ID=1
       - KAFKA_CFG_NODE_ID=1
       - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@localhost:9093
       - ALLOW_PLAINTEXT_LISTENER=yes
   volumes:
       - /data/deploy/kafkaCluster/kraft:/bitnami/kafka:rw
   ports:
       - "9092:9092"
       - "9093:9093"
配置解释



[*]version: "3":指定Docker Compose文件的版本。
[*]services:界说服务,本例中为Kafka服务。
[*]image: 'bitnami/kafka:latest':使用Bitnami提供的Kafka最新镜像。
[*]user: root:以root用户运行容器。
[*]environment:设置环境变量,配置Kafka。

[*]KAFKA_ENABLE_KRAFT=yes:启用KRaft模式。
[*]KAFKA_CFG_PROCESS_ROLES=broker,controller:设置Kafka的脚色为broker和controller。
[*]KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER:界说controller的监听器名称。
[*]KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093:界说Kafka的监听地址。
[*]KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT:映射安全协议。
[*]KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://ip:9092:设置广告监听地址,请将ip替换为服务器的实际IP地址。
[*]KAFKA_BROKER_ID=1:设置Broker ID。
[*]KAFKA_CFG_NODE_ID=1:设置节点ID。
[*]KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@localhost:9093:设置控制器选举的投票者。
[*]ALLOW_PLAINTEXT_LISTENER=yes:允许PLAINTEXT监听。

[*]volumes:挂载主机目次到容器内,长期化数据。

[*]/data/deploy/kafkaCluster/kraft:/bitnami/kafka:rw:将主机的/data/deploy/kafkaCluster/kraft目次挂载到容器的/bitnami/kafka目次。

[*]ports:暴露端口。

[*]"9092:9092":将主机的9092端口映射到容器的9092端口。
[*]"9093:9093":将主机的9093端口映射到容器的9093端口。

可以通过添加下面的配置指定Kafka 控制器集群中的仲裁投票者(Quorum Voters),目前配置是单机所以没有去配置
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=brokerId@host:port,brokerId@host:port,...
部署Kafka

在运行docker-compose的目次下,运行以下命令启动Kafka服务:
docker-compose up -d
效果如下:
https://i-blog.csdnimg.cn/direct/73aa561ec7d64080a32a7e3b36b0833e.png
测试部署

确认Kafka服务是否已成功运行,可以使用以下命令检查容器状态:
docker ps
效果如下:https://i-blog.csdnimg.cn/direct/b6181738218e4d968f266d591636fed7.png
如果Kafka容器正在运行,你将看到bitnami/kafka:latest镜像的容器在列表中。
你还可以使用Kafka命令行工具或Kafka客户端测试Kafka服务,比方使用Kafka自带的生产者和消耗者工具发送和接收消息。
这样,我们就完成了在Docker服务器上部署最新版Kafka的操作。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Docker服务器上部署最新版Kafka