写点什么

Kafka server,Python 面试

作者:程序媛可鸥
  • 2022 年 3 月 19 日
  • 本文字数:3171 字

    阅读完需:约 10 分钟

等待 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 必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。



用户头像

Python编程资料加Q群免费领取:419829237 2022.03.14 加入

还未添加个人简介

评论

发布
暂无评论
Kafka server,Python面试_Python_程序媛可鸥_InfoQ写作平台