Kafka server,Python 面试
等待 IO 线程处理的请求队列最大数
queued.max.requests = 500
socket 的发送缓冲区(SO_SNDBUF)
socket.send.buffer.bytes=1048576
socket 的接收缓冲区 (SO_RCVBUF)
socket.receive.buffer.bytes=1048576
socket 请求的最大字节数。为了防止内存溢出,message.max.bytes 必然要小于
socket.request.max.bytes = 104857600
############################# Topic #############################
每个 topic 的分区个数,更多的 partition 会产生更多的 segment file
num.partitions=2
是否允许自动创建 topic ,若是 false,就需要通过命令创建 topic
auto.create.topics.enable =true
一个 topic ,默认分区的 replication 个数 ,不能大于集群中 broker 的个数。
default.replication.factor =1
消息体的最大大小,单位是字节
message.max.bytes = 1000000
############################# ZooKeeper #############################
Zookeeper quorum 设置。如果有多个使用逗号分割
zookeeper.connect=debugo01:2181,debugo02,debugo03
连接 zk 的超时时间
zookeeper.connection.timeout.ms=1000000
ZooKeeper 集群中 leader 和 follower 之间的同步实际
zookeeper.sync.time.ms = 2000
############################# Log #############################
#日志存放目录,多个目录使用逗号分割
log.dirs=/var/log/kafka
当达到下面的消息数量时,会将数据 flush 到日志文件中。默认 10000
#log.flush.interval.messages=10000
当达到下面的时间(ms)时,执行一次强制的 flush 操作。interval.ms 和 interval.messages 无论哪个达到,都会 flush。默认 3000ms
#log.flush.interval.ms=1000
检查是否需要将日志 flush 的时间间隔
log.flush.scheduler.interval.ms = 3000
日志清理策略(delete|compact)
log.cleanup.policy = delete
日志保存时间 (hours|minutes),默认为 7 天(168 小时)。超过这个时间会根据 policy 处理数据。bytes 和 minutes 无论哪个先达到都会触发。
log.retention.hours=168
日志数据存储的最大字节数。超过这个时间会根据 policy 处理数据。
#log.retention.bytes=1073741824
控制日志 segment 文件的大小,超出该大小则追加到一个新的日志 segment 文件中(-1 表示没有限制)
log.segment.bytes=536870912
当达到下面时间,会强制新建一个 segment
log.roll.hours = 24*7
日志片段文件的检查周期,查看它们是否达到了删除策略的设置(log.retention.hours 或 log.retention.bytes)
log.retention.check.interval.ms=60000
是否开启压缩
log.cleaner.enable=false
对于压缩的日志保留的最长时间
log.cleaner.delete.retention.ms = 1 day
对于 segment 日志的索引文件大小限制
log.index.size.max.bytes = 10 * 1024 * 1024
#y 索引计算的一个缓冲区,一般不需要设置。
log.index.interval.bytes = 4096
############################# replica #############################
partition management controller 与 replicas 之间通讯的超时时间
controller.socket.timeout.ms = 30000
controller-to-broker-channels 消息队列的尺寸大小
controller.message.queue.size=10
replicas 响应 leader 的最长等待时间,若是超过这个时间,就将 replicas 排除在管理之外
replica.lag.time.max.ms = 10000
是否允许控制器关闭 broker ,若是设置为 true,会关闭所有在这个 broker 上的 leader,并转移到其他 broker
controlled.shutdown.enable = false
控制器关闭的尝试次数
controlled.shutdown.max.retries = 3
每次关闭尝试的时间间隔
controlled.shutdown.retry.backoff.ms = 5000
如果 relicas 落后太多,将会认为此 partition relicas 已经失效。而一般情况下,因为网络延迟等原因,总会导致 replicas 中消息同步滞后。如果消息严重滞后,leader 将认为此 relicas 网络延迟较大或者消息吞吐能力有限。在 broker 数量较少,或者网络不足的环境中,建议提高此值.
replica.lag.max.messages = 4000
#leader 与 relicas 的 socket 超时时间
replica.socket.timeout.ms= 30 * 1000
leader 复制的 socket 缓存大小
replica.socket.receive.buffer.bytes=64 * 1024
replicas 每次获取数据的最大字节数
replica.fetch.max.bytes = 1024 * 1024
replicas 同 leader 之间通信的最大等待时间,失败了会重试
replica.fetch.wait.max.ms = 500
每一个 fetch 操作的最小数据尺寸,如果 leader 中尚未同步的数据不足此值,将会等待直到数据达到这个大小
replica.fetch.min.bytes =1
leader 中进行复制的线程数,增大这个数值会增加 relipca 的 IO
num.replica.fetchers = 1
每个 replica 将最高水位进行 flush 的时间间隔
replica.high.watermark.checkpoint.interval.ms = 5000
是否自动平衡 broker 之间的分配策略
auto.leader.rebalance.enable = false
leader 的不平衡比例,若是超过这个数值,会对分区进行重新的平衡
leader.imbalance.per.broker.percentage = 10
检查 leader 是否不平衡的时间间隔
leader.imbalance.check.interval.seconds = 300
客户端保留 offset 信息的最大空间大小
offset.metadata.max.bytes = 1024
#############################Consumer #############################
Consumer 端核心的配置是 group.id、zookeeper.connect
决定该 Consumer 归属的唯一组 ID,By setting the same group id multiple processes indicate that they are all part of the same consumer group.
group.id
消费者的 ID,若是没有设置的话,会自增
co
nsumer.id
一个用于跟踪调查的 ID ,最好同 group.id 相同
client.id = <group_id>
对于 zookeeper 集群的指定,必须和 broker 使用同样的 zk 配置
zookeeper.connect=debugo01:2182,debugo02:2182,debugo03:2182
zookeeper 的心跳超时时间,查过这个时间就认为是无效的消费者
zookeeper.session.timeout.ms = 6000
zookeeper 的等待连接时间
zookeeper.connection.timeout.ms = 6000
zookeeper 的 follower 同 leader 的同步时间
zookeeper.sync.time.ms = 2000
当 zookeeper 中没有初始的 offset 时,或者超出 offset 上限时的处理方式 。
smallest :重置为最小值
largest:重置为最大值
anything else:抛出异常给 consumer
auto.offset.reset = largest
socket 的超时时间,实际的超时时间为 max.fetch.wait + socket.timeout.ms.
socket.timeout.ms= 30 * 1000
socket 的接收缓存空间大小
socket.receive.buffer.bytes=64 * 1024
#从每个分区 fetch 的消息大小限制
fetch.message.max.bytes = 1024 * 1024
最后
Python 崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS 等更加高级的领域。Python 可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python 可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
??Python 所有方向的学习路线??
Python 所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
??Python 必备开发工具??
工欲善其事必先利其器。学习 Python 常用的开发软件都在这里了,给大家节省了很多时间。
??Python 全套学习视频??
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
??实战案例??
学 python 就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。
因此在学习 python 的过程中一定要记得多动手写代码,教程只需要看一两遍即可。
??大厂面试真题??
我们学习 Python 必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
评论