bitnami/kafka环境变量讲解

复制代码
- KAFKA_CFG_NODE_ID=0
- KAFKA_CFG_PROCESS_ROLES=controller,broker
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
讲

这是一个 Kafka KRaft 模式(无 ZooKeeper)的配置。让我逐一解释这些环境变量的含义:

配置详解

1. 节点身份配置

bash 复制代码
KAFKA_CFG_NODE_ID=0
  • 设置 Kafka 节点的唯一标识符为 0

2. 节点角色配置

bash 复制代码
KAFKA_CFG_PROCESS_ROLES=controller,broker
  • 该节点同时担任 控制器(controller)代理(broker) 角色
  • 在 KRaft 模式中,控制器负责元数据管理,代理负责消息存储和传输

3. 监听器配置

bash 复制代码
KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
  • 定义两个监听器:
    • PLAINTEXT://:9092:客户端通信端口(broker 功能)
    • CONTROLLER://:9093:控制器间通信端口(controller 功能)

4. 安全协议映射

bash 复制代码
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
  • 指定各监听器使用的安全协议
  • 这里都使用明文协议(PLAINTEXT),生产环境应使用 SSL/SASL

5. 控制器集群配置

bash 复制代码
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093
  • 定义控制器投票成员
  • 格式:节点ID@主机:端口
  • 这里只有一个控制器节点(0)在 kafka:9093

6. 控制器监听器名称

bash 复制代码
KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
  • 指定用于控制器通信的监听器名称

架构特点

这是一个 单节点 KRaft 集群

  • 集成了控制器和代理功能
  • 使用 KRaft 共识算法替代 ZooKeeper
  • 适用于开发和测试环境

生产环境建议

对于生产环境,建议:

bash 复制代码
# 多节点配置示例
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka1:9093,1@kafka2:9093,2@kafka3:9093
# 启用安全协议
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:SSL,PLAINTEXT:SASL_SSL

这种配置简化了 Kafka 架构,减少了外部依赖,提高了部署效率。

相关推荐
无名-CODING3 小时前
分布式锁实战演练:跨越 JVM 的并发掌控者
jvm·分布式
standovon4 小时前
RabbitMQ 的介绍与使用
分布式·rabbitmq·ruby
2301_767902645 小时前
ceph分布式存储(一)
分布式·ceph
2301_767902646 小时前
ceph分布式存储(二)
分布式·ceph
狼与自由6 小时前
Redis 分布式锁
数据库·redis·分布式
1104.北光c°8 小时前
基于Canal + Kafka的高可用关注系统:一主多从关系链
java·开发语言·笔记·分布式·程序人生·kafka·一主多从
sjmaysee8 小时前
Spring Boot集成Kafka:最佳实践与详细指南
spring boot·kafka·linq
蜜獾云9 小时前
Kafka(1)-Kafka基本术语
分布式·kafka
珠海西格9 小时前
1MW光伏项目“四可”装置数据采集类设备具体配置详解
服务器·网络·人工智能·分布式·安全
jerryinwuhan9 小时前
Spark安装配置2
大数据·分布式·spark