首页 > 其他分享 >手动部署Kraft模式Kafka集群

手动部署Kraft模式Kafka集群

时间:2023-11-28 11:59:22浏览次数:31  
标签:## 9092 kafka Topic PLAINTEXT 集群 172.29 Kraft Kafka

手动部署Kraft模式kafka集群

基本信息

IP地址 Hostname Release Kafka-Version
172.29.145.157 iamdemo1 Centos7.9 kafka_2.12-3.5.1
172.29.145.182 iamdemo2 Centos7.9 kafka_2.12-3.5.1
172.29.145.183 iamdemo3 Centos7.9 kafka_2.12-3.5.1

下载安装包

kafka安装包官网下载
下载完成后上传到服务器/opt目录下解压

tar -xf kafka_2.12-3.5.1.tgz
将文件夹重命名为kafka
mv kafka_2.12-3.5.1 kafka

生成集群随机uuid

[root@iamdemo1 ~ ]cd /opt/kafka/bin
[root@iamdemo1 bin]# sh kafka-storage.sh random-uuid
COY-4PxTT82yfvGKqAepwQ
配置kafka集群的kraft模式参数
参数位置:/opt/kafka/config/kraft/server.properties
##角色可同时为broker和controller
process.roles=broker,controller 
##node.id为当前服务器作为节点的id
node.id=1  
##定义投票节点,用于选举Master,每个节点都必须配置
[email protected]:9093,[email protected]:9093,[email protected]:9093 
##9092为每个broker的通信端口,9093为controller节点的通信端口,如果一个节点是混合节点那就需要同时监听两个端口
listeners=PLAINTEXT://:9092,CONTROLLER://:9093     #,EXTERNAL://172.29.145.157:9094 
##broker内部监听协议
inter.broker.listener.name=PLAINTEXT 
##对外公开的端口
#advertised.listeners=EXTERNAL://172.29.145.157:9094,PLAINTEXT://:9092 
advertised.listeners=PLAINTEXT://172.29.145.157:9092
controller.listener.names=CONTROLLER 
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL,EXTERNAL:PLAINTEXT
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
##kafka数据默认存储的地方
log.dirs=/opt/kafka/kraft-combined-logs 
##每一个topic默认的分区
num.partitions=6 
##恢复线程
num.recovery.threads.per.data.dir=2 
##用于存储消费者组的消费偏移量信息的特殊主题,用于在发生故障时或者重新加入时能够恢复到之前的消费位置
offsets.topic.replication.factor=3 
##用于存储事务状态信息的特殊主题,kafka支持事务性写入,当生产者使用事务模式写入数据时,信息会写入这个主题
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=3
auto.create.topics.enable=false
default.replication.factor=3
##数据的存储时间
log.retention.hours=168
##设置kafka一个数据段最大值1G
log.segment.bytes=1073741824
##检查数据过期时间300s一次
log.retention.check.interval.ms=300000

使用集群uuid格式化kafka数据存储目录

[root@iamdemo1 bin]# sh kafka-storage.sh format -t COY-4PxTT82yfvGKqAepwQ -c ../config/kraft/server.properties
Formatting /opt/kafka/kraft-combined-logs with metadata.version 3.5-IV2.

修改启动脚本,暴露JMX端口,配置JVM内存大小

##注意,jdk必须为64位jdk,否则JVM内存大小设置为4G会报错启动失败,查看方法java --version如果没有显示64bit的都是32位
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
    export KAFKA_HEAP_OPTS="-Xmx4G -Xms4G"
    export JMX_PORT="9999"
fi

修改kafka日志配置参数,避免一小时生成一个日志文件

文件位置:/opt/kafka/config/log4j.properties
##添加两条日志最大量
log4j.appender.kafkaAppender.MaxFileSize=100MB
log4j.appender.kafkaAppender.MaxBackupIndex=5
##修改DatePattern
log4j.appender.kafkaAppender.DatePattern='.'yyyy-MM-dd

使用脚本启动kafka集群

[root@iamdemo1 bin]# sh kafka-server-start.sh -daemon ../config/kraft/server.properties

查看集群状态

通过jps即可看到kafka进程是否在运行,也可通过ps aux查看
查看topic副本分布情况可以通过
./kafka-topics.sh --describe  --bootstrap-server 172.29.145.157:9092,172.29.145.182:9092,172.29.145.183:9092

Topic: test-topic1      TopicId: U3-YpQ4QQqWM7jQ-8uAxjA PartitionCount: 6       ReplicationFactor: 3    Configs: segment.bytes=1073741824
        Topic: test-topic1      Partition: 0    Leader: 3       Replicas: 3,1,2 Isr: 3,1,2
        Topic: test-topic1      Partition: 1    Leader: 1       Replicas: 1,2,3 Isr: 1,2,3
        Topic: test-topic1      Partition: 2    Leader: 2       Replicas: 2,3,1 Isr: 2,3,1
        Topic: test-topic1      Partition: 3    Leader: 1       Replicas: 1,2,3 Isr: 1,2,3
        Topic: test-topic1      Partition: 4    Leader: 2       Replicas: 2,3,1 Isr: 2,3,1
        Topic: test-topic1      Partition: 5    Leader: 3       Replicas: 3,1,2 Isr: 3,1,2

标签:##,9092,kafka,Topic,PLAINTEXT,集群,172.29,Kraft,Kafka
From: https://www.cnblogs.com/iamxiaofu/p/17858962.html

相关文章

  • 什么是kafka中topic、分区、副本、偏移量、消息保留策略
    Kafka是一个开源的分布式流式数据平台,也成为分布式消息队列。用于高吞吐量、低延迟的数据发布和订阅。 1、什么是topic(主题)? 在Kafka中,Topic(主题)是数据发布和订阅的基本单位,它代表了相同类型的消息流。 一个Topic可以看作是一个逻辑上的数据流管道,消息的生产者(Prod......
  • Kafka 如何保证消息消费的全局顺序性
    哈喽大家好,我是咸鱼今天我们继续来讲一讲Kafka当有消息被生产出来的时候,如果没有指定分区或者指定key,那么消费会按照【轮询】的方式均匀地分配到所有可用分区中,但不一定按照分区顺序来分配我们知道,在Kafka中消费者可以订阅一个或多个主题,并被分配一个或多个分区如果一......
  • 关于es中集群,节点,分片和副本的理解
    集群页面中每一个对象就是一个集群节点集群中包含许多es实例,其中一个es实例就是一个节点节点也分许多功能分片和副本该例子中分片数为9,副本数为1数据节点就是Node注意:a和b是同样的数据,a为主分片,b为副本分片,但是同样的数据不能放在相同的节点上面(比如a1和b1不能),......
  • 更新 Kubernetes 集群中 Argo CD 的服务类型为 NodePort失败
    这个问题是我再做项目的时候要开区argoCD时并链接时端口开区不了kubectlpatchsvcargocd-server-nargocd-p'{"spec":{"type":"NodePort"}}'service/argocd-serverpatched(nochange)发现这样的问题这个问题我是换了一个思路是直接来做以刻kubernetes的yaml文件并且......
  • Kafka3.6.0 linux 安装,非zookeeper模式
    参考:安装Kafka3.3.1及kraft运行,告别zookeeper_kafka3.3.1jdk无需zookeeper,kafka3.0版本集群安装实战 操作系统:ubutun18.04LTS1.下载到kafka官网下载2.上传到服务器指定位置3.解压到指定目录,这里我放到/opt下tar-xzvfkafka_2.13-3.6.0.tgz-C/opt/4.修改配置:因为......
  • Hadoop-3.3.6分布式集群搭建步骤
    1.下载JDK8Linux安装Openjdk2.下载Hadoop3.3.6Hadoop安装及环境变量配置3.创建hadoop数据存储的目录mkdir-p/opt/hadoop/tmp/opt/hadoop/hdfs/data/opt/hadoop/hdfs/name4.配置hostname和host文件hostnamectlset-hostname{hostName}vim/etc/hosts192.168.58.1......
  • C++聊天集群服务器2
    ​ 总体项目结构如下:一、数据库的封装​ db.h如图代码量不多​ db.cpp:#include"db.h"#include<muduo/base/Logging.h>//数据库配置信息staticstringserver="127.0.0.1";staticstringuser="root";staticstringpassword="123456";st......
  • 性能测试复习准备——linux环境下安装kafka_2.13-3.2.3.tgz
    参考:https://www.bilibili.com/video/BV1Xy4y1G7zA?p=6&vd_source=79bbd5b76bfd74c2ef1501653cee29d6      解压到目录路径下:  启动kafka之前,首先启动zk:       修改配置文件:        启动kafka和查看:       ......
  • C++聊天集群服务器1
    ​ 先给出整个项目的结构图:​ 一、环境搭建​ 施磊的c++聊天项目。相信已经到了这部分内容就已经能够自行搭建环境了,这里主要给出搭建的具体内容,方法自行百度。下面给出环境要求。​ 1.json-cpp​ 2.muduo库​ 3.cmake​ 4.mysql二、CMake编写​ 主目录下的cmakecmake_m......
  • RabbitMQ -- 集群(二)
    镜像队列队列创建只在创建的机器上出现,不会出现在其他节点上,需要创建镜像队列,将队列备份到其他节点,可以备份到其他节点或者全部节点创建:在任意一个节点上添加一个policy即可在Web管理界面设置:admin->policies->Add/updateapolicy->Name:mirror-twoPattern:^mirror......