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和数据库放在同一个事务
    既然选择了远方,就要风雨兼程~
  • 相关阅读:
    element-ui实现表格el-table展开行
    jQuery请求本地JSON文件,在谷歌浏览器运行时报跨域错误
    jQuery使用serialize获取form表单数据,中文乱码问题
    Element-ui局部添加loading效果
    Vue中this.$set的使用
    项目管理【81】 | 项目立项管理
    项目管理【80】 | 知识产权与标准规范-标准规范
    项目管理【79】 | 知识产权与标准规范-政府采购法法
    项目管理【78】 | 知识产权与标准规范-招投标法
    项目管理【77】 | 知识产权与标准规范-合同法
  • 原文地址:https://www.cnblogs.com/liuweimingcprogram/p/14447477.html
Copyright © 2011-2022 走看看