美文网首页
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