Kafka的相关说明
一:kafka配置信息
1.配置说明:
Broker的配置信息server.properties
Socket Server Setting:
port=9092
Log Basics:
log.dirs=/home/alex/tmp/kafka-logs
num.partitions=1
Log Flush Polocy:日志刷盘策略有两种:
消息的个数达到10000个,实现刷盘
log.flush.interval.messages=10000
消息的时间间隔达到1s,实现刷盘
log.flush.interval.ms=1000
Log Retention Policy:日志保留策略,有以下几种
设置日志保留的默认时间为一周
log.retention.hours=168
日志大小默认为1G
log.retention.bytes=1073741824
日志段文件的最大大小
log.segment.bytes=1073741824
检查日志段的间隔时间为5分钟,以查看它们是否可以根据删除保留政策
log.retention.check.interval.ms=300000
二:Partition分区数和Broker数关系
1.如果Partition数等于Broker数
kafka集群比较均衡
2.如果Partition数小于Broker数
某个Broker节点上不存在当前topic的分区,Broker节点可能被闲置,最终导致Kafka集群吞吐率下降
3.如果Partition数大于Broker数
抛异常 java.lang.IllegalArgumentException: Invalid partition given with record: 1 is not in the range [0...0].
三:kafka“推拉”模式
Kafka选择由producer向broker push消息并由consumer从broker pull消息。
push模式的目标是尽可能以最快速度传递消息;
pull模式则可以根据consumer的消费能力以适当的速率消费消息。