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

2024-01-11 03:36
文章标签 部署 集群 模式 kafka kraft

本文主要是介绍Kafka集群部署 (KRaft模式集群),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Zookeeper 模式和KRaft 模式 对比

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

KRaft 模式的优势

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

helm安装

helm repo add bitnami https://charts.bitnami.com/bitnami
helm pull  bitnami/kafka --untar
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

最后得到

    kafka-controller-0.kafka-controller-headless.openim-dev.svc.cluster.local:9092kafka-controller-1.kafka-controller-headless.openim-dev.svc.cluster.local:9092kafka-controller-2.kafka-controller-headless.openim-dev.svc.cluster.local:9092The CLIENT listener for Kafka client connections from within your cluster have been configured with the following security settings:- SASL authenticationTo 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

apiVersion: apps/v1
kind: Deployment
metadata:name: kafka-uilabels:app: kafka-ui
spec:replicas: 1selector:matchLabels:app: kafka-uitemplate:metadata:labels:app: kafka-uispec:containers:- name: kafka-uiimage: provectuslabs/kafka-ui:latestenv:- name: KAFKA_CLUSTERS_0_NAMEvalue: '可以自定义名字 Kafka Cluster'- name: KAFKA_CLUSTERS_0_BOOTSTRAPSERVERSvalue: 'kafka-controller-0:9092,kafka-controller-1:9092,kafka-controller-2:9092'- name: KAFKA_CLUSTERS_0_PROPERTIES_SECURITY_PROTOCOLvalue: 'SASL_PLAINTEXT'- name: KAFKA_CLUSTERS_0_PROPERTIES_SASL_MECHANISMvalue: 'PLAIN'- name: KAFKA_CLUSTERS_0_PROPERTIES_SASL_JAAS_CONFIGvalue: '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-uitype: NodePortports:- protocol: TCPport: 8080targetPort: 8080

在这里插入图片描述
在这里插入图片描述

这篇关于Kafka集群部署 (KRaft模式集群)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/593028

相关文章

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

Java Kafka消费者实现过程

《JavaKafka消费者实现过程》Kafka消费者通过KafkaConsumer类实现,核心机制包括偏移量管理、消费者组协调、批量拉取消息及多线程处理,手动提交offset确保数据可靠性,自动提交... 目录基础KafkaConsumer类分析关键代码与核心算法2.1 订阅与分区分配2.2 拉取消息2.3

Redis中哨兵机制和集群的区别及说明

《Redis中哨兵机制和集群的区别及说明》Redis哨兵通过主从复制实现高可用,适用于中小规模数据;集群采用分布式分片,支持动态扩展,适合大规模数据,哨兵管理简单但扩展性弱,集群性能更强但架构复杂,根... 目录一、架构设计与节点角色1. 哨兵机制(Sentinel)2. 集群(Cluster)二、数据分片

Python利用PySpark和Kafka实现流处理引擎构建指南

《Python利用PySpark和Kafka实现流处理引擎构建指南》本文将深入解剖基于Python的实时处理黄金组合:Kafka(分布式消息队列)与PySpark(分布式计算引擎)的化学反应,并构建一... 目录引言:数据洪流时代的生存法则第一章 Kafka:数据世界的中央神经系统消息引擎核心设计哲学高吞吐

C#和Unity中的中介者模式使用方式

《C#和Unity中的中介者模式使用方式》中介者模式通过中介者封装对象交互,降低耦合度,集中控制逻辑,适用于复杂系统组件交互场景,C#中可用事件、委托或MediatR实现,提升可维护性与灵活性... 目录C#中的中介者模式详解一、中介者模式的基本概念1. 定义2. 组成要素3. 模式结构二、中介者模式的特点

Linux部署中的文件大小写问题的解决方案

《Linux部署中的文件大小写问题的解决方案》在本地开发环境(Windows/macOS)一切正常,但部署到Linux服务器后出现模块加载错误,核心原因是Linux文件系统严格区分大小写,所以本文给大... 目录问题背景解决方案配置要求问题背景在本地开发环境(Windows/MACOS)一切正常,但部署到

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

MySQL 主从复制部署及验证(示例详解)

《MySQL主从复制部署及验证(示例详解)》本文介绍MySQL主从复制部署步骤及学校管理数据库创建脚本,包含表结构设计、示例数据插入和查询语句,用于验证主从同步功能,感兴趣的朋友一起看看吧... 目录mysql 主从复制部署指南部署步骤1.环境准备2. 主服务器配置3. 创建复制用户4. 获取主服务器状态5

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满