KCenter icon indicating copy to clipboard operation
KCenter copied to clipboard

[新增功能]不支持无zk版本和启用了SSL的kafka

Open mosaicwang opened this issue 1 year ago • 2 comments

kafka版本 : 3.9.0 没有安装ZK,因为高版本kafka已经有kraft,不需要ZK了。 另外,kafka启用了SSL。 在Kcenter的集群-新增集群界面,ZK为必填,同时也无法指定客户端证书

mosaicwang avatar Dec 23 '24 12:12 mosaicwang

已确认问题,等待开发

TrumanDu avatar Dec 24 '24 02:12 TrumanDu

当前环境:

  • CentOS 7.x(所有节点)
  • 内存:4GB+ 每个节点
  • Java 17(所有节点)
  • kafka 3.9.1
Image

Kafka 从2.8.0版本开始引入了KIP-500,开始支持在没有ZooKeeper的情况下运行,这种模式称为Kafka Raft Metadata (KRaft)模式。在3.9版本中,KRaft模式已经正式发布,可以用于生产环境。但是,传统的基于ZooKeeper的模式仍然被支持。

因此,kafkaCenter 管理界面需要优化,可以选择KRaft和zk 逻辑控制,很期待看到这样的新版本变化

我当前部署方式为docker 容器

docker-compose.yaml

version: '3.8'
services:
  # MySQL 服务(供 KafkaCenter 存储元数据)
  mysql:
    image: mysql:8.0
    container_name: kafkacenter-mysql
    environment:
      MYSQL_ROOT_PASSWORD: root123  # 根密码
      MYSQL_DATABASE: kafkacenter   # 自动创建数据库
      MYSQL_USER: kcuser            # 自定义用户
      MYSQL_PASSWORD: kcpwd         # 用户密码
    volumes:
      - $PWD/mysql/data:/var/lib/mysql  # 持久化 MySQL 数据
      - $PWD/mysql/init:/docker-entrypoint-initdb.d  
    ports:
      - "3306:3306"
    restart: always
    networks:
      - kc-network
  kafkacenter:
    image: xaecbd/kafka-center:2.3.0
    container_name: kafkacenter
    ports:
      - "9000:8080" # kafkacenter 默认端口8080
    environment:
       # 连接上面的 MySQL 容器(使用容器名作为主机名)
      SPRING_DATASOURCE_URL: "jdbc:mysql://mysql:3306/kafkacenter?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true"
      SPRING_DATASOURCE_USERNAME: kcuser
      SPRING_DATASOURCE_PASSWORD: kcpwd
      SPRING_DATASOURCE_DRIVER_CLASS_NAME: com.mysql.cj.jdbc.Driver  # MySQL 驱动(镜像内置)
      # Kafka 集群配置(保持不变)
      KAFKA_CLUSTER_CONFIG: |
        [
          {
            "clusterName": "MyKRaftCluster",
            "bootstrapServers": "node1:9092,node2:9092,node3:9092",
            "offsetStore": "kafka", 
            "securityProtocol": "PLAINTEXT",
            "jmxEnabled": "true",
            "jmxUser": "",
            "jmxPassword": ""
          }
        ]
    volumes:
      - $PWD/kafkacenter/db:/data/db
      - $PWD/kafkacenter/config:/config
    restart: always
    depends_on:
      - mysql  # 确保 MySQL 启动后再启动 KafkaCenter
    networks:
      - kc-network  # 加入同一网络
# 自定义网络,使服务间可通过容器名通信
networks:
  kc-network:
    driver: bridge

lwx57280 avatar Aug 12 '25 12:08 lwx57280