kafka教程(新手使用单机版)

文章目录

一、概念

kafka是一个分布式消息系统、所谓消息系统主要功能就是发布/订阅。

二、安装

为了省事,直接docker安装了,docker-compose.yml文件如下

概念说明:环境中一共包含四个

1、zookeeper:kafka数据调度,关键组件

2、kafka组件

3、kafka-connect

4、kafka-ui:kafka图形可视化

版本说明:kafka采用稳定版7.4.1,最新版有KRaft能够替代zookeeper,为了保险起见还是先用稳定版,如果用最新版就不用安装zookeeper

yaml 复制代码
services:
  # Zookeeper 服务
  zookeeper:
    image: docker.1ms.run/library/zookeeper:latest
    container_name: zookeeper
    environment:
      - ALLOW_ANONYMOUS_LOGIN=yes
    ports:
      - "2181:2181"
    restart: unless-stopped
    volumes:
      - kafka_data:/bitnami/zookeeper

  # Kafka 服务
  kafka:
    image: docker.1ms.run/confluentinc/cp-kafka:7.4.1
    container_name: kafka
    environment:
      KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181"

      # 监听器配置 (核心)
      KAFKA_LISTENERS: "PLAINTEXT://:9092"
      KAFKA_ADVERTISED_LISTENERS: "PLAINTEXT://kafka:9092"

      # 单节点环境必需的关键配置
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
      KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
      KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
      KAFKA_DEFAULT_REPLICATION_FACTOR: 1
      KAFKA_NUM_PARTITIONS: 3

      # 其他推荐配置
      KAFKA_AUTO_CREATE_TOPICS_ENABLE: "true"
      KAFKA_LOG_RETENTION_HOURS: 168
      KAFKA_LOG_SEGMENT_BYTES: 1073741824
      # Confluent 镜像特定优化
      KAFKA_JMX_PORT: 9101
      KAFKA_JMX_HOSTNAME: localhost
    ports:
      - "9092:9092"
      - "29092:29092"
    depends_on:
      - zookeeper
    restart: unless-stopped
    volumes:
      - kafka_data:/bitnami/kafka

  # Kafka Connect 服务
  kafka-connect:
    image: docker.1ms.run/confluentinc/cp-kafka-connect:latest
    container_name: kafka-connect
    environment:
      - CONNECT_BOOTSTRAP_SERVERS=kafka:9092
      - CONNECT_GROUP_ID=kafka-connect-cluster
      - CONNECT_CONFIG_STORAGE_TOPIC=_connect-configs
      - CONNECT_OFFSET_STORAGE_TOPIC=_connect-offsets
      - CONNECT_STATUS_STORAGE_TOPIC=_connect-status
      - CONNECT_KEY_CONVERTER=org.apache.kafka.connect.json.JsonConverter
      - CONNECT_VALUE_CONVERTER=org.apache.kafka.connect.json.JsonConverter
      - CONNECT_KEY_CONVERTER_SCHEMAS_ENABLE=false
      - CONNECT_VALUE_CONVERTER_SCHEMAS_ENABLE=false
      - CONNECT_REST_ADVERTISED_HOST_NAME=kafka-connect
      - CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR=1
      - CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR=1
      - CONNECT_STATUS_STORAGE_REPLICATION_FACTOR=1
      - CONNECT_PLUGIN_PATH=/usr/share/java,/usr/share/confluent-hub-components
    ports:
      - "8083:8083"
    depends_on:
      - kafka
    restart: unless-stopped
    volumes:
      - kafka_data:/usr/share/confluent-hub-components
  kafka-ui:
    image: docker.1ms.run/provectuslabs/kafka-ui:latest
    container_name: kafka-ui
    ports:
      - "8080:8080"  # 通过浏览器访问 http://localhost:8080
    environment:
      # 动态配置模式,允许在Web界面中添加集群
      - DYNAMIC_CONFIG_ENABLED=true
      # 也可以通过环境变量直接配置集群连接(示例)
      #- KAFKA_CLUSTERS_0_NAME=local
      #- KAFKA_CLUSTERS_0_BOOTSTRAP_SERVERS=kafka:9092
      #- KAFKA_CLUSTERS_0_ZOOKEEPER=zookeeper:2181
      #- KAFKA_CLUSTERS_0_KAFKACONNECT_0_NAME=local-connect
      #- KAFKA_CLUSTERS_0_KAFKACONNECT_0_ADDRESS=http://kafka-connect:8083
    depends_on:
      - kafka
      - kafka-connect
volumes:
  kafka_data:

三、使用

使用kafka-ui地址:http://localhost:8080/

添加管理kafka集群和kafka-connect

添加成功:kafka-connect此时并没有显示是因为没有配置连接插件

相关推荐
qq_12498707533 小时前
基于Hadoop的信贷风险评估的数据可视化分析与预测系统的设计与实现(源码+论文+部署+安装)
大数据·人工智能·hadoop·分布式·信息可视化·毕业设计·计算机毕业设计
ask_baidu3 小时前
KafkaUtils
kafka·bigdata
洛豳枭薰5 小时前
消息队列关键问题描述
kafka·rabbitmq·rocketmq
lucky67075 小时前
Spring Boot集成Kafka:最佳实践与详细指南
spring boot·kafka·linq
Coder_Boy_5 小时前
基于Spring AI的分布式在线考试系统-事件处理架构实现方案
人工智能·spring boot·分布式·spring
袁煦丞 cpolar内网穿透实验室7 小时前
远程调试内网 Kafka 不再求运维!cpolar 内网穿透实验室第 791 个成功挑战
运维·分布式·kafka·远程工作·内网穿透·cpolar
岁岁种桃花儿7 小时前
CentOS7 彻底卸载所有JDK/JRE + 重新安装JDK8(实操完整版,解决kafka/jps报错)
java·开发语言·kafka
人间打气筒(Ada)7 小时前
GlusterFS实现KVM高可用及热迁移
分布式·虚拟化·kvm·高可用·glusterfs·热迁移
xu_yule7 小时前
Redis存储(15)Redis的应用_分布式锁_Lua脚本/Redlock算法
数据库·redis·分布式
難釋懷11 小时前
分布式锁的原子性问题
分布式