翼度科技»论坛 云主机 LINUX 查看内容

手动部署Kraft模式Kafka集群

9

主题

9

帖子

27

积分

新手上路

Rank: 1

积分
27
手动部署Kraft模式kafka集群

基本信息

IP地址HostnameReleaseKafka-Version172.29.145.157iamdemo1Centos7.9kafka_2.12-3.5.1172.29.145.182iamdemo2Centos7.9kafka_2.12-3.5.1172.29.145.183iamdemo3Centos7.9kafka_2.12-3.5.1下载安装包

kafka安装包官网下载
下载完成后上传到服务器/opt目录下解压
  1. tar -xf kafka_2.12-3.5.1.tgz
  2. 将文件夹重命名为kafka
  3. mv kafka_2.12-3.5.1 kafka
复制代码
生成集群随机uuid
  1. [root@iamdemo1 ~ ]cd /opt/kafka/bin
  2. [root@iamdemo1 bin]# sh kafka-storage.sh random-uuid
  3. COY-4PxTT82yfvGKqAepwQ
复制代码
配置kafka集群的kraft模式参数
  1. 参数位置:/opt/kafka/config/kraft/server.properties
复制代码
  1. ##角色可同时为broker和controller
  2. process.roles=broker,controller
  3. ##node.id为当前服务器作为节点的id
  4. node.id=1  
  5. ##定义投票节点,用于选举Master,每个节点都必须配置
  6. controller.quorum.voters=1@172.29.145.157:9093,2@172.29.145.182:9093,3@172.29.145.183:9093
  7. ##9092为每个broker的通信端口,9092为controller节点的混合端口,如果一个节点是混合节点那就需要同时监听两个端口
  8. listeners=PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://172.29.145.157:9094
  9. ##broker内部监听协议
  10. inter.broker.listener.name=PLAINTEXT
  11. ##对外公开的端口
  12. advertised.listeners=EXTERNAL://172.29.145.157:9094,PLAINTEXT://:9092
  13. controller.listener.names=CONTROLLER
  14. listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL,EXTERNAL:PLAINTEXT
  15. num.network.threads=3
  16. num.io.threads=8
  17. socket.send.buffer.bytes=102400
  18. socket.receive.buffer.bytes=102400
  19. socket.request.max.bytes=104857600
  20. ##kafka数据默认存储的地方
  21. log.dirs=/opt/kafka/kraft-combined-logs
  22. ##每一个topic默认的分区
  23. num.partitions=6
  24. ##恢复线程
  25. num.recovery.threads.per.data.dir=2
  26. ##用于存储消费者组的消费偏移量信息的特殊主题,用于在发生故障时或者重新加入时能够恢复到之前的消费位置
  27. offsets.topic.replication.factor=3
  28. ##用于存储事务状态信息的特殊主题,kafka支持事务性写入,当生产者使用事务模式写入数据时,信息会写入这个主题
  29. transaction.state.log.replication.factor=3
  30. transaction.state.log.min.isr=3
  31. auto.create.topics.enable=false
  32. default.replication.factor=3
  33. ##数据的存储时间
  34. log.retention.hours=168
  35. ##设置kafka一个数据段最大值1G
  36. log.segment.bytes=1073741824
  37. ##检查数据过期时间300s一次
  38. log.retention.check.interval.ms=300000
复制代码
使用集群uuid格式化kafka数据存储目录
  1. [root@iamdemo1 bin]# sh kafka-storage.sh format -t COY-4PxTT82yfvGKqAepwQ -c ../config/kraft/server.properties
  2. Formatting /opt/kafka/kraft-combined-logs with metadata.version 3.5-IV2.
复制代码
修改启动脚本,暴露JMX端口,配置JVM内存大小
  1. ##注意,jdk必须为64位jdk,否则JVM内存大小设置为4G会报错启动失败,查看方法java --version如果没有显示64bit的都是32位
  2. if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
  3.     export KAFKA_HEAP_OPTS="-Xmx4G -Xms4G"
  4.     export JMX_PORT="9999"
  5. fi
复制代码
修改kafka日志配置参数,避免一小时生成一个日志文件
  1. 文件位置:/opt/kafka/config/log4j.properties
复制代码
  1. ##添加两条日志最大量
  2. log4j.appender.kafkaAppender.MaxFileSize=100MB
  3. log4j.appender.kafkaAppender.MaxBackupIndex=5
  4. ##修改DatePattern
  5. log4j.appender.kafkaAppender.DatePattern='.'yyyy-MM-dd
复制代码
使用脚本启动kafka集群
  1. [root@iamdemo1 bin]# sh kafka-server-start.sh -daemon ../config/kraft/server.properties
复制代码
查看集群状态
  1. 通过jps即可看到kafka进程是否在运行,也可通过ps aux查看
  2. 查看topic副本分布情况可以通过
  3. ./kafka-topics.sh --describe  --bootstrap-server 172.29.145.157:9092,172.29.145.182:9092,172.29.145.183:9092
  4. Topic: test-topic1      TopicId: U3-YpQ4QQqWM7jQ-8uAxjA PartitionCount: 6       ReplicationFactor: 3    Configs: segment.bytes=1073741824
  5.         Topic: test-topic1      Partition: 0    Leader: 3       Replicas: 3,1,2 Isr: 3,1,2
  6.         Topic: test-topic1      Partition: 1    Leader: 1       Replicas: 1,2,3 Isr: 1,2,3
  7.         Topic: test-topic1      Partition: 2    Leader: 2       Replicas: 2,3,1 Isr: 2,3,1
  8.         Topic: test-topic1      Partition: 3    Leader: 1       Replicas: 1,2,3 Isr: 1,2,3
  9.         Topic: test-topic1      Partition: 4    Leader: 2       Replicas: 2,3,1 Isr: 2,3,1
  10.         Topic: test-topic1      Partition: 5    Leader: 3       Replicas: 3,1,2 Isr: 3,1,2
复制代码
来源:https://www.cnblogs.com/iamxiaofu/p/17858962.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具