zoukankan      html  css  js  c++  java
  • 深入学习垃圾kafka

    背景:

    1. kafka是一个分布式、高吞吐率的消息系统

    ---- 早期版本

    ---- 重点在日志处理

    2. kafka是一个分布式、流式平台

    ---- 0.10

    ---- 天然支持stream处理

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

     

     

    名词解释 

    1. producer
    2. broker(中间人),依赖ZK,存储一些元信息 + 领导选举之类的
    3. consumer
    4. 细分
      1. Record(每一条数据)
        1. key-value
        2. timestmap
      2. Topic(一个消息类别)
        1. 逻辑概念
        2. 发布-订阅基于topic
      3. Partition(分布在不同的broker中)
        1. 物理概念
        2. 一个Topic包含多个partition
        3. 每个partition物理上对应一个文件
      4. Segment
        1. 是文件,一个partition下的多个文件
      5. Consumer group
        1. 就是指定N:M,N个consumer消费M个partition

    关键点

    1. consumer使用pull机制而不用push机制(GO语言的NS-queue采用push),原因可以防止producer产生数据太快,但是consumer消费不过来一直积压
      1. broker里面的数据是持久化的,consumer处理慢不会影响数据丢失
      2. pull方式会比push方式慢一点,因为不会一直pull数据,中间有一个时间间隔,或者使用long pulling也行但是还是没push高
    2. producer需要使用SDK发送数据,SDK有内部数据队列,会有丢弃数据风险(可以用立马flush,变成同步模型)
    3. 写数据(append only),顺序写
    4. 什么时候删数据?只需要删除最老的segment即可
    5. 默认SDK发送会有多条TCP链接,这样会导致发送顺序乱掉,解决方法是设置TCP连接数为1
    6. consumer group是如何reblance的?(集中式rebalance)
      1. coordinator决定
    7. ISR复制模式 (In Sync Replace,每次都是一批一批数据过来的)
      1. 发送数据去partition的leader
      2. follower有两个容忍
        1. 接受K条消息落后,超过踢掉(旧版本)
        2. 接受K秒消息落后,超过踢掉
      3. 假如leader挂了,就会在ISR里面宿便选一个
    8. 如何实现exactly once
      1. 两阶段提交
      2. 幂等接口
      3. offset和数据库放在同一个事务
    既然选择了远方,就要风雨兼程~
  • 相关阅读:
    OpenShift提供的免费.net空间 数据库 申请流程图文
    javascript实现全选全取消功能
    编写一个方法来获取页面url对应key的值
    面试题目产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
    面试宝典
    HDU 4619 Warm up 2 贪心或者二分图匹配
    HDU 4669 Mutiples on a circle 数位DP
    HDU 4666 最远曼哈顿距离
    HDU 4035 Maze 概率DP 搜索
    HDU 4089 Activation 概率DP
  • 原文地址:https://www.cnblogs.com/liuweimingcprogram/p/14447477.html
Copyright © 2011-2022 走看看