2. docker 安装 kafka

1.准备工作

  Apache Kafka 是一个分布式流数据平台,专为处理实时数据流设计,具备高吞吐、低延迟、持久化存储等核心特性。

1.分布式消息系统
  解耦生产者(Producer)与消费者(Consumer),支持发布/订阅模式。
  示例场景:订单系统生成订单事件,库存系统实时消费处理。
2.流处理基础设施
  支持实时数据管道(如日志聚合、IoT设备数据流)。
  示例架构:传感器数据 → Kafka → Flink实时计算 → 预警系统。
3.持久化存储系统
  数据按主题(Topic)分类存储,默认保留7天(可配置为永久存储)。
  支持TB级数据存储,常用于数据湖的实时层。

  1.创建所需要的配置文件及数据挂载目录

  2.docker-compose.yml


services:
  kafka:
    image: apache/kafka:3.7.0
    container_name: kafka
    ports:
      - "9092:9092"
    environment:
      KAFKA_NODE_ID: 1
      KAFKA_LOG_DIRS: "/var/lib/kafka/data" 
      KAFKA_PROCESS_ROLES: broker,controller
      KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka:9093
      KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
      KAFKA_CLUSTER_ID: "my-kafka-cluster"
      KAFKA_LISTENERS: SASL_PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093
      KAFKA_ADVERTISED_LISTENERS: SASL_PLAINTEXT://192.168.147.130:9092
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,SASL_PLAINTEXT:SASL_PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: SASL_PLAINTEXT
      KAFKA_SASL_ENABLED_MECHANISMS: PLAIN
      KAFKA_SASL_MECHANISM_INTER_BROKER_PROTOCOL: PLAIN
      KAFKA_OPTS: "-Djava.security.auth.login.config=/etc/kafka/kafka_jaas.conf"
      
    volumes:
      - /home/kafka/kafka-data:/var/lib/kafka/data
      - /home/kafka/kafka_jaas.conf:/etc/kafka/kafka_jaas.conf
    networks:
      - kafka-net


networks:
  kafka-net:
    driver: bridge 
3.kafka_jaas.conf
KafkaServer {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="admin"
    password="admin-secret"
    user_admin="admin-secret";
};
2.启动容器

3. Offset  Explorer 3.0 连接kafka

1.offsetexplorer.vmoptions 配置文件中加入客户端连接的认证信息位置

# Enter one VM parameter per line
# For example, to adjust the maximum memory usage to 512 MB, uncomment the following line:
# -Xmx512m
# To include another file, uncomment the following line:
# -include-options [path to other .vmoption file]


-Djava.security.auth.login.config=d:/client_jaas.conf

2.认证信息位置中加入认证信息 client_jaas.conf

KafkaClient {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="admin"
    password="admin-secret";
};

3.Offset  Explorer 3.0 中相关配置

### 使用 Docker 安装 Kafka 3.7.1 的方法 要通过 Docker 安装 Kafka 3.7.1,可以按照以下方式操作。虽然官方并没有提供特定的 Kafka 3.7.1 镜像,但可以通过组合 Zookeeper 和 Kafka 的镜像来实现安装需求。 #### 1. 拉取必要的 Docker 镜像 首先需要拉取 `wurstmeister/zookeeper` 和 `wurstmeister/kafka` 这两个镜像作为基础环境支持[^4]: ```bash docker pull wurstmeister/zookeeper docker pull wurstmeister/kafka ``` 这两个镜像是社区广泛使用的稳定版本,能够满足大部分场景下的开发和测试需求。 #### 2. 创建并启动 Zookeeper 实例 Kafka 需要依赖于 Zookeeper 来完成元数据管理和协调工作。因此,在运行 Kafka 前需先启动一个 Zookeeper 实例: ```yaml version: '3' services: zookeeper: image: wurstmeister/zookeeper ports: - "2181:2181" ``` 上述 YAML 文件定义了一个简单的单机版 Zookeeper 服务,并将其端口映射到主机上的 2181 端口。 #### 3. 配置并启动 Kafka 实例 接下来创建 Kafka 服务实例并与之前启动的 Zookeeper 关联起来。以下是完整的 `docker-compose.yml` 文件示例[^5]: ```yaml version: '3' services: zookeeper: image: wurstmeister/zookeeper ports: - "2181:2181" kafka: image: wurstmeister/kafka ports: - "9092:9092" environment: KAFKA_ADVERTISED_HOST_NAME: host.docker.internal KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_CREATE_TOPICS: "test_topic:1:1" volumes: - /var/run/docker.sock:/var/run/docker.sock ``` 在此配置文件中: - 设置了 Kafka 的广告地址为 `host.docker.internal`,以便容器内部能正确解析宿主机 IP 地址[^1]; - 将 Kafka 连接到本地运行的 Zookeeper 实例上; - 自动创建名为 `test_topic` 的主题供初步验证使用。 执行命令以启动服务: ```bash docker-compose up -d ``` 此时应该可以看到 Zookeeper 及 Kafka 正常启动日志输出。 #### 4. 测试 Kafka 功能 为了确认安装成功与否以及功能是否正常运作,可通过生产者消费者模型来进行简单测试[^2]: 进入 Kafka 容器内部终端: ```bash docker exec -it kafka /bin/bash cd /opt/ ls ``` 利用内置脚本发送消息至指定 topic 中去: ```bash kafka-console-producer.sh --broker-list localhost:9092 --topic test_topic ``` 与此同时开启另一个会话窗口接收来自该 topic 的所有消息记录: ```bash kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic test_topic ``` 如果一切顺利的话,则可以在消费端看到由生产端输入的内容展示出来。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值