Kafka集群部署 (KRaft模式集群)

KRaft 模式是 Kafka 在 3.0 版本中引入的新模式。KRaft 模式使用了 Raft 共识算法来管理 Kafka 集群元数据。Raft 算法是一种分布式共识算法,具有高可用性、可扩展性和安全性等优势。
在 KRaft 模式下,Kafka 集群中的每个 Broker 都具有和 Zookeeper 类似的角色。每个 Broker 都参与管理 Kafka 集群元数据,包括分区分配、副本分配、元数据快照等。

Zookeeper 模式和KRaft 模式 对比

特性 KRaft 模式 Zookeeper 模式
使用共识算法 Raft Zookeeper
可用性
扩展性
安全性
复杂度

KRaft 模式的优势

KRaft 模式具有以下优势:
  • 更简单:KRaft 模式将 Kafka 集群元数据管理整合到了 Kafka 中,因此不需要使用外部服务,这使得 Kafka 集群的部署和管理更加简单。
    更高效:KRaft 模式使用了 Raft 算法来管理 Kafka 集群元数据,Raft 算法具有更高的效率,因此 Kafka 集群的性能可以得到提升。
    更可靠:KRaft 模式使用了 Raft 算法来管理 Kafka 集群元数据,Raft 算法具有更高的可靠性,因此 Kafka 集群的稳定性可以得到提升。

helm安装

js 复制代码
helm repo add bitnami https://charts.bitnami.com/bitnami
helm pull  bitnami/kafka --untar
js 复制代码
helm install kafka kafka --values ./kafka/values.yaml  \
    --set replicaCount=1 \
    --set kafka.kafkaConfigOverrides=transaction.state.log.replication.factor=1 \
    --set kafka.kafkaConfigOverrides=transaction.state.log.min.isr=1 \
    --set kafka.kafkaConfigOverrides=default.replication.factor=1 \
    --set kafka.kafkaConfigOverrides=num.io.threads=2 \
    --set kafka.kafkaConfigOverrides=num.network.threads=2 \
    --set kafka.kafkaConfigOverrides=inter.broker.protocol.version=3.5.1 \
    --set kafka.kafkaConfigOverrides=offsets.topic.replication.factor=1 \
    --set kafka.kafkaConfigOverrides=transaction.state.log.num.partitions=50

最后得到

js 复制代码
    kafka-controller-0.kafka-controller-headless.openim-dev.svc.cluster.local:9092
    kafka-controller-1.kafka-controller-headless.openim-dev.svc.cluster.local:9092
    kafka-controller-2.kafka-controller-headless.openim-dev.svc.cluster.local:9092

The CLIENT listener for Kafka client connections from within your cluster have been configured with the following security settings:
    - SASL authentication

To connect a client to your Kafka, you need to create the 'client.properties' configuration files with the content below:

security.protocol=SASL_PLAINTEXT
sasl.mechanism=SCRAM-SHA-256
sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \
    username="user1" \
    password="$(kubectl get secret kafka-user-passwords --namespace openim-dev -o jsonpath='{.data.client-passwords}' | base64 -d | cut -d , -f 1)";

在安装一个kafka-web

js 复制代码
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kafka-ui
  labels:
    app: kafka-ui
spec:
  replicas: 1
  selector:
    matchLabels:
      app: kafka-ui
  template:
    metadata:
      labels:
        app: kafka-ui
    spec:
      containers:
      - name: kafka-ui
        image: provectuslabs/kafka-ui:latest
        env:
        - name: KAFKA_CLUSTERS_0_NAME
          value: '可以自定义名字 Kafka Cluster'
        - name: KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS
          value: 'kafka-controller-0:9092,kafka-controller-1:9092,kafka-controller-2:9092'
        - name: KAFKA_CLUSTERS_0_PROPERTIES_SECURITY_PROTOCOL
          value: 'SASL_PLAINTEXT'
        - name: KAFKA_CLUSTERS_0_PROPERTIES_SASL_MECHANISM
          value: 'PLAIN'
        - name: KAFKA_CLUSTERS_0_PROPERTIES_SASL_JAAS_CONFIG
          value: 'org.apache.kafka.common.security.plain.PlainLoginModule required username="user1" password="19fJTxgwnD";'
        resources:
          requests:
            memory: "256Mi"
            cpu: "100m"
        ports:
        - containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
  name: kafka-ui
spec:
  selector:
    app: kafka-ui
  type: NodePort
  ports:
    - protocol: TCP
      port: 8080
      targetPort: 8080


相关推荐
creator_Li10 分钟前
Kafka深入刨析-Consumer
分布式·kafka
国科安芯1 小时前
四通道集成降压稳压器在低轨卫星星座分布式供电架构中的应用研究
分布式·架构·电源管理系统·低轨卫星星座·分布式供电·dc-dc降压稳压器·抗辐射加固
国科安芯16 小时前
低轨卫星姿态与轨道控制系统中高可靠MCU的选型研究——基于AS32S601的抗辐照性能试验数据分析
分布式·科技·单片机·嵌入式硬件·系统架构
谢白羽18 小时前
SGLang源码剖析-2-sglang双层体系架构全景
分布式·架构·llm·vllm·sglang
霸道流氓气质1 天前
分布式锁 — 概念、原理与实践
分布式
杰佛史彦明 本王是暴君1 天前
分布式日志收集系统: Facebook Scribe
分布式·facebook
JHC0000001 天前
基于 DrissionPage 与 Xvfb 的分布式无头爬虫架构
分布式·kafka
梦云莓铃 脚后跟法1 天前
结合领域驱动设计的SOA分布式软件架构
分布式
zcmodeltech1 天前
火电厂模型多设备时序控制系统设计:基于STM32与Modbus RTU的燃煤-燃机全流程联动方案
分布式·stm32·单片机·嵌入式硬件·物联网
ACP广源盛139246256732 天前
DeepSeek‑V4‑Flash 公测@ACP#昇腾 950 国产算力组合落地,国产 PCIe 交换芯片 IX9104 有哪些硬件机会
大数据·数据库·人工智能·分布式·单片机·嵌入式硬件·microsoft