Kafka随笔
消息:key[可选] value,,批量发送
Topic
Partition(顺序写)---》offerset
Consumer根据offerset来消费
Key作为路由,可以重写partition改变路由策略

Kafka高吞吐的因素
顺序写的方式存储数据,问题,频繁的io,网络,磁盘io
--》批量发送 batch.size/linger.ms 满足多大,或者多久发送一次,之前都缓存再批量发送的topic
零拷贝
直接吧数据从磁盘读取到缓存区,到socket buffer然后在发送出去
Linux,有个FIleChannel.transferTo kafka 底层调用,直接吧数据读到socket buffer供消费者调用
日志策略
日志保留策略
时间或大小
日志压缩策略
消息可靠性
消息发送可靠性
生产者发送消息到broker,有三种确认方式
Ack = 0;
Ack =1;
Ack =-1;
消息存储可靠性
Partition规则 实现消息的水平扩展
Partition 是单点,有数据丢失的风险,可以高可靠性副本
-replication-factor 表示副本数2
sh kafka-topics.sh --create --zookeeper 192.168.72.128:2181 --replication-factor 1 --partitions 2 --topic one
Partition副本
Leader选举
ISR(replica集合)
维护有资格的follower
满足条件:副本的所有节点都要zookeeper保持连接状态
副本的最后一条信息的offset和leader副本节点的最后一条信息的offset差值在阈值范围内,阈值可设置
采用ISR好处,如果有的follower节点延迟严重,ISR会直接剔除该follower
Hw&leo log end offset
副本同步细节,副卡数多影响性能,涉及到数据同步
Follower从leader都同步完数据后,hw增加,同时可以消费该信息,
Leo是副卡同步中的标志
ISR存储位置?
如果key是null,就会放在同一个分区
如何在原有的topic,设置副本和分区
Kafka-log下面对应的topic有日志
00.index
00.log
集群下日志是一样的吗
Kafka消息已日志形式顺序存在日志文件中的


消息的消费原理
老版本的kafka 0.8 offset所有的进度都维护在zk上,频繁和zk交互影响zk性能
新版本kafka,offset都维护在kafka的topic上
posted on 2017-12-21 16:31 huangjj369 阅读(319) 评论(0) 收藏 举报
浙公网安备 33010602011771号