美文网首页
Consumer核心参数与Consumer消费原理

Consumer核心参数与Consumer消费原理

作者: CoderInsight | 来源:发表于2023-02-27 08:57 被阅读0次

1,简述核心参数

官网查看kafka参数http://kafka.apache.org/10/documentation.html

【heartbeat.interval.ms】
默认值:3000
consumer心跳时间,必须得保持心跳才能知道consumer是否故障了,然后如果故障之后,就会通过心跳下发rebalance的指令给其他的consumer通知他们进行rebalance的操作

【session.timeout.ms】
默认值:10000   
kafka多长时间感知不到一个consumer就认为他故障了,默认是10秒

【max.poll.interval.ms】
默认值:300000  
如果在两次poll操作之间,超过了这个时间,那么就会认为这个consume处理能力太弱了,会被踢出消费组,分区分配给别人去消费,一遍来说结合你自己的业务处理的性能来设置就可以了

【fetch.max.bytes】
默认值:1048576
获取一条消息最大的字节数,一般建议设置大一些

【max.poll.records】
默认值:500条
一次poll返回消息的最大条数,

【connections.max.idle.ms】
默认值:540000  
consumer跟broker的socket连接如果空闲超过了一定的时间,此时就会自动回收连接,但是下次消费就要重新建立socket连接,这个建议设置为-1,不要去回收

【auto.offset.reset】
    earliest
        当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,从头开始消费       
    latest
        当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,从当前位置开始消费
    none
        topic各分区都存在已提交的offset时,从offset后开始消费;只要有一个分区不存在已提交的offset,则抛出异常
        
注:我们生产里面一般设置的是latest

【enable.auto.commit】
默认值:true
设置为自动提交offset

【auto.commit.interval.ms】
默认值:60 * 1000
每隔多久更新一下偏移量


如果消费者这端要保证数据被处理且只被处理一次:
   屏蔽掉了下面这2种情况:
    (1)数据的重复处理
    (2)数据的丢失
    
一般来说:需要手动提交偏移量,需要保证数据处理成功与保存偏移量的操作在同一事务中就可以了    

2,简述Consumer消费原理

  • Consumer消费过程简介:
    • Consumer 指定了要消费的 Topic 之后,会向 Broker Controller 发送消费请求。
    • Broker Controler会为Consumer 分配一个或者几个Partition Leader,并将其获得的 Partition 的Offset发给Consumer。
    • 当 Consumer 消费完一条消息之后会向 Broker 发送一条消息被消费的反馈,即该消息的Offset。
    • 当Broker收到 Consumer的Offset之后,会更新到相应的__consumer_offset中。
    • 以上过程会一直重复,直到Consumer停止了消费请求。
    • Consumer 可以重置 Offser,从而可以灵活的存到在Broker上的信息。
  • offset
    • offset介绍
    • Offset管理
    • __consumer_offsets 的消息格式(K-V)
    • 提交 offset
      • 自动提交
      • 手动提交
      • 自动提交与手动提交的区别
      • 更精细的提交offset
      • 删除过期消息
    • Coordinator 协调器
      • Coordinator的作用
      • 如何选择哪台是coordinator??
    • 消费者组 consumer Group
    • Consumer Group Rebalance
      • rebalance介绍
      • rebalance的问题
    • consumer Group Rebalance 高级
      • Consumer Group Coordinator
      • kafka 如何为 Consumer Group确定Coordinator
      • rebalance的弊端
      • 如何避免组成员数量发生变化
        • 增加实例
        • 减少实例
      • 解决非必要的Rebalance

相关文章

网友评论

      本文标题:Consumer核心参数与Consumer消费原理

      本文链接:https://www.haomeiwen.com/subject/btkqkdtx.html