kafka的配置

ops/2024/12/27 14:55:28/

 server.properties

server.properties模板

# broker id,多个broker服务器的话,每个broker id必须不同
broker.id=1# kafka broker所在节点的
hostnamehostname=10.1.1.1.3:9092#  处理网络请求的线程数
num.network.threads= 8# 执行磁盘IO的线程数
num.io.threads=8# server使用的send buffer大小。
socket.send.buffer.bytes=1048576# server使用的recive buffer大小。
socket.receive.buffer.bytes=1048576# 接受的最大请求大小(防止OOM)
socket.request.max.bytes=104857600#-------------added by Kaim ---------------
# 加入队列的最大请求数(超过该值,network thread阻塞)
queued.max.requests=16# purgatory(炼狱)是个容器,用来存放不能马上答复的网络请求。如果能答复请求则从炼狱删除。这个是fetch炼狱保存的最大请求数。设置的比默认值小是据说因为这里有个BUG,不知道0.10.x中解决没# BUG说明见:http://blog.csdn.net/stark_summer/article/details/50203133fetch.purgatory.purge.interval.requests=100# 生产者炼狱保存的最大请求数
producer.purgatory.purge.interval.requests=100############################# 日志配置#############################
# 可以设置多个日志存放的路径
log.dirs=~/kafka-logs# 默认每个主题的分区数,生产环境建议值:
8num.partitions= 8# 启停时做日志恢复每个目录所需的线程数,采用RAID的时候可以增大该值
num.recovery.threads.per.data.dir=1# 写入磁盘的消息批大小
log.flush.interval.messages=10000# 强制刷新消息到磁盘的时间阈值
log.flush.interval.ms=10000# 日志保留的最少时间 由于做压测,防止占用磁盘太多,保留时间为1ms# 
log.retention.hours=168log.retention.minutes=5# 每个日志段大小,超过该值会生成新日志段
log.segment.bytes=1073741824# 检查日志分段文件的间隔时间,以确定是否文件属性是否到达删除要求。
log.retention.check.interval.ms=300000# --------------added by kami--------------
# 自动创建主题
auto.create.topics.enable=true# 当执行一次fetch后,需要一定的空间扫描最近的offset,设置的越大越好,一般使用默认值就可以
log.index.interval.bytes=4096# 每个log segment的最大尺寸。注意,如果log尺寸达到这个数值,即使尺寸没有超过log.segment.bytes限制,也需要产生新的log  segment。log.index.size.max.bytes=10485760# 检查是否需要fsync的时间间隔
log.flush.scheduler.interval.ms=2000# 即使文件没有到达log.segment.bytes,只要文件创建时间到达此属性,就会创建新文件。
log.roll.hours=168# server可以接收的消息最大尺寸。重要的是,consumer和producer有关这个属性的设置必须同步,否则producer发布的消息对consumer来说太大。默认值均为一百万
message.max.bytes=1000000############################# Zookeeper #############################
# zookeeper server地址,如果有多个则用逗号分隔
zookeeper.connect=zoo1:2181,zoo2:2181,zoo3:2181# Timeout in ms for connecting to zookeeper# zk连接的超时时间
zookeeper.connection.timeout.ms=6000# zk follower的同步延迟时间
zookeeper.sync.time.ms = 2000############################ replication configuration added by KamiWan############### 从leader备份数据的线程数
num.replica.fetchers=4# 备份时每次fetch的最大值
replica.fetch.max.bytes=1048576# follwer执行fetcher请求时的最大等待时间
replica.fetch.wait.max.ms=500# 默认的replication数量,可以根据所需要的可靠性要求来配置
default.replication.factor=2# 性能调优
#处理网络请求的线程数
num.network.threads=3
#处理I/O操作的线程数
num.io.threads=8
#单个消息的最大大小
message.max.bytes=1000000#安全配置
#代理间通信使用的协议
security.inter.broker.protocol=SASL_PLAINTEXT
#启用的SASL认证机制
sasl.enabled.mechanisms=PLAIN
#代理间通信使用的SASL机制
sasl.mechanism.inter.broker.protocol=# 日志保留策略
log.retention.hours=168# 控制器和集群相关配置
#控制器监听的名称
controller.listener.names=PLAINTEXT
#是否允许未同步的副本被选为领导者
unclean.leader.election.enable=false
#:写入消息时需要的最小同步副本数
min.insync.replicas=3#Kafka 集群优化设置的参数
num.network.threads=9 (CPU数+1)默认是3
num.io.threads=16 (CPU数2到3倍)默认是8
# 每当producer写入10000条消息时,刷数据到磁盘
log.flush.interval.messages=10000
# 每间隔1秒钟时间,刷数据到磁盘
log.flush.interval.ms=1000
#默认是16384,有点小
batch.size = 100000
#加快备份的复制速度
num.replica.fetchers=4#消息从内存中写入磁盘是时候使用的线程数量。
#用来处理磁盘IO的线程数量
num.io.threads=8#发送套接字的缓冲区大小
socket.send.buffer.bytes=102400#接受套接字的缓冲区大小
socket.receive.buffer.bytes=102400#请求套接字的缓冲区大小
socket.request.max.bytes=104857600#我们知道segment文件默认会被保留7天的时间,超时的话就
#会被清理,那么清理这件事情就需要有一些线程来做。这里就是
#用来设置恢复和清理data下数据的线程数量
num.recovery.threads.per.data.dir=1#segment文件保留的最长时间,默认保留7天(168小时),
#超时将被删除,也就是说7天之前的数据将被清理掉。
log.retention.hours=168#滚动生成新的segment文件的最大时间
log.roll.hours=168#日志文件中每个segment的大小,默认为1G
log.segment.bytes=1073741824#上面的参数设置了每一个segment文件的大小是1G,那么
#就需要有一个东西去定期检查segment文件有没有达到1G,
#多长时间去检查一次,就需要设置一个周期性检查文件大小
#的时间(单位是毫秒)。
log.retention.check.interval.ms=300000#日志清理是否打开
log.cleaner.enable=true#broker需要使用zookeeper保存meta数据
zookeeper.connect=zk01:2181,zk02:2181,zk03:2181#zookeeper链接超时时间
zookeeper.connection.timeout.ms=6000#上面我们说过接收线程会将接收到的消息放到内存中,然后再从内存
#写到磁盘上,那么什么时候将消息从内存中写入磁盘,就有一个
#时间限制(时间阈值)和一个数量限制(数量阈值),这里设置的是
#数量阈值,下一个参数设置的则是时间阈值。
#partion buffer中,消息的条数达到阈值,将触发flush到磁盘。
log.flush.interval.messages=10000#消息buffer的时间,达到阈值,将触发将消息从内存flush到磁盘,
#单位是毫秒
log.flush.interval.ms=3000

.index 文件:

描述:这是 Kafka 的偏移量索引文件。它用于快速查找消息在日志文件中的位置。
命名格式:00000000000000000000.index
作用:通过这个索引文件,Kafka 可以快速定位消息在日志文件中的物理位置,以便更快地读取消息。
.log 文件:

描述:这是 Kafka 的日志文件,存储实际的消息数据。
命名格式:00000000000000000000.log
作用:包含了生产者发送的消息内容。每个日志文件是一个分区的一部分,日志文件的命名表示消息的起始偏移量。
.timeindex 文件:

描述:这是 Kafka 的时间戳索引文件,存储消息的时间戳索引。
命名格式:00000000000000000000.timeindex
作用:通过这个文件,Kafka 可以根据时间戳快速查找消息。这个文件对于实现基于时间的消息查找非常重要。
.snapshot 文件:

描述:这是 Kafka 的快照文件,记录了日志段的元数据快照。
命名格式:00000000000000000016.snapshot
作用:用于恢复日志段的元数据,保证在崩溃恢复时能够正确地重建索引和时间戳数据。
leader-epoch-checkpoint 文件:

描述:这是 Kafka 用于记录 leader 选举周期的检查点文件。
作用:记录了分区的 leader 副本在不同的选举周期中的偏移量信息,帮助 Kafka 在故障恢复时确定正确的 leader 和消息偏移量。

partition.metadata 文件

  • 描述:这是 Kafka 的分区元数据文件。
  • 作用:存储分区的基本元数据信息,如分区的 leader、replica 列表等,用于分区的管理和协调

http://www.ppmy.cn/ops/145406.html

相关文章

经历三次的运放笔试题

简述电阻电容的作用,计算放大倍数 上图假设同向端直接接地:就是最基本的反向放大电路,就像下面这样 R1:输入电阻,R4:反馈电阻,构成反向放大电路,A = VinRf/R= -20k / 10k = -2Vin ;没问题 但是加上R2、R3后,相当于同向输入端也加了输入。此时可以利用叠加定理,也就是…

基于springboot的海洋知识服务平台的设计与实现

基于springboot的海洋知识服务平台的设计与实现 写在前面 需要源码加lzlv58787 开发内容 编程语言:Java / Vue2 框架: SpringBoot Shiro Mybatis-plus 项目结构 后端管理系统前台Web 后端管理系统 前台Web

day17-18-进程管理和系统资源管理

linux资源管理器 linux中对需要运维去管理、去查看的资源信息,如下 内存资源、使用率 free命令磁盘资源、使用率 dfCPU资源、使用率 tophtopglances进程资源、使用率 pspstreepidof网络资源、使用率 Iftop所有资源的整体查看命令 topglanceshtop 一、什么是进程 …

Golang微服务-protobuf

protobuf gRPC是一款语言中立、平台中立、开源的远程过程调用系统,gRPC客户端和服务端可以在多种环境中运行和交互,例如用java写一个服务端,可以用go语言写客户端调用 数据在进行网络传输的时候,需要进行序列化,序列化…

微服务——技术选型与框架

1、你在项目中使用过哪些 Java 微服务框架?请简要介绍一下它们的特点和优势。 Spring Cloud:一套基于 Spring Boot 的微服务架构工具包,提供完整的分布式系统解决方案,包括服务发现、配置管理、负载均衡、熔断器等。优势在于生态…

Lambda、Stream流、线程(池)、IO

文章目录 LambdaStream流线程(池)IO Lambda 使用前提 必须存在一个接口接口中有且只有一个抽象方法 格式 : ( 形式参数 ) -> { 代码块 } 形式参数:如果有多个参数,参数之间用逗号隔开;如果没有参数,留空…

Mysql复习(一)

数据库系统的核心是( 数据库管理系统 )。 以下的标识符中符合标识符命名规则的有几个?(3个) 3abc7, abc73, bc73a, c73ab,*73abc 标识符的第一个字符允许包括哪些符号?( _ 或者 或者 #) 关系表达式运算的…

.NET 8.0 项目升级到 .NET 9.0

本文项目从.NETCore3.1开始一直延续到目前,如果您没有升级过,请参考以下文章: .Net Core 2.2 升级到 .Net Core 3.1:https://blog.csdn.net/hefeng_aspnet/article/details/131259537 NetCore3.1或Net6.0项目升级到Net7.0&#x…