kafka学习整理

kafka consumer group: 

Kafka消费组(consumer group) - huxihx - 博客园

kafka partition  group 讲的比较好的文章:

kafka partition(分区)与 group - 凌-风 - 博客园

Coordinator存储的信息

对于每个Consumer Group,Coordinator会存储以下信息:

  1. 对每个存在的topic,可以有多个消费组group订阅同一个topic(对应消息系统中的广播)
  2. 对每个Consumer Group,元数据如下:
    订阅的topics列表
    Consumer Group配置信息,包括session timeout等
    组中每个Consumer的元数据。包括主机名,consumer id
    每个正在消费的topic partition的当前offsets
    Partition的ownership元数据,包括consumer消费的partitions映射关系;

kafka分区:

如果分区数大于消费者实例个数,按照抽屉原理,必定有一个消费者同时负责多个分区(2个 or 以上)

如果分区数等于消费者实例个数,正好一个消费者消费一个分区

如果分区数小于消费者实例个数,必然有消费者空闲

那么kafka的分区策略,

Range策略

RoundRobin策略

kafka 面试题:

Kafka常见面试题_徐周的博客-CSDN博客_kafka面试题

kafka缓存:

Kafka中大量使用了页缓存,这是Kafka实现高吞吐的重要因此之一。虽然消息都是先被写入页缓存,然后由操作系统负责具体的刷盘任务,但在Kafka中同样提供了同步刷盘及间断性强制刷盘(fsync)的功能,这些功能可以通过log.flush.interval.message、log.flush.interval.ms等参数来控制。同步刷盘可以提高 消息的可行性,防止由于机器掉电等异常造成处于页缓存而没有及时写入磁盘的消息丢失。不过一般不建议这么做,刷盘任务就应交由操作系统去调配,消息的可靠性应该由多副本机制来保障,而不是由同步刷盘这种严重影响性能的行为来保障。

kafka快速的原因:

Cache Filesystem Cache PageCache缓存

顺序写 由于现代的操作系统提供了预读和写技术,磁盘的顺序写大多数情况下比随机写内存还要快。

Zero-copy 零拷技术减少拷贝次数

Batching of Messages 批量量处理。合并小的请求,然后以流的方式进行交互,直顶网络上限。

Pull 拉模式 使用拉模式进行消息的获取消费,与消费端处理能力相符。

kafka消息堆积解决方案:

kafka幂等的解决方案:

kafka部分失败部分成功如何处理:
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值