zoukankan      html  css  js  c++  java
  • Kafka学习笔记

    最近在看“kafk权威指南”,记录一下。

    1. kafka是一个队列,开源的发布订阅系统,可以支持在线、离线任务。

    2. kafka作为队列系统,下游从kafka拉取数据并将处理成功信息反馈到kafka,可以实现下游至少处理一次,保证不丢数据

        可以结合其他启动(如去重等)实现消费一次且仅一次。

        消费者客户端可以在本地记录当前的offeset,kafka支持从特定partition的offset读取数据。

    3. kafka中同一个topic主题,代表一种数据或者同一类数据生成者生成的数据。

        同一个topic可以支持多个partition,支持自定义partition规则,实现同一个上游数据hash到同一个partition。

        

    4. kafka同一个消费者群组对应的一个topic的partition个数平均分配

        同一个topic的一个patition只能被一个消费者消费,同一个消费者可以消费topic的多个partition。

        如果消费者群组中消费者数量大于topic中partition数量,则部分消费者没有partition可以进行消费。

         

    5. kafka中当有新的broker/消费者加入时,都会触发再均衡,观察者模式

        生产者再均衡,生产者发数据到那些broker。

        消费者再均衡,消费者处理那些partition。

    6. kafka客户端要自己负责把生产者请求和获取请求发送到正确的broker上。

        kafka中任意一个broker都提供元信息请求, 包括主题的分区、每个分区有那些副本、以及那个副本是首领等信息。

    7. kafka生成者数据提交ACK问题

        acks=0,不需要确认。

        acks=1,只需要集群的首领节点写入成功,就可以回复生成者确认信息。

        acks=all,只有当所有参与复制的节点全部收到消息,生产者才会收到确认信。

    8. kafka消费者数据提交offset问题

         每个partition都有offset,并且同一个partition可以有多个消费者,他们的offest互不影响。

         

    9. kafka数据复制

        每个partition都需要有多个副本,副本数可以配置。越多系统越稳定,但是副本一致也越困难。通常3副本就可以。

        分区首领是同步副本,负责数据的生成者数据的写入,负责消费者消费。其他同步副本是追随者,负责实时同步首领副本消息。

        一个不同步的副本,通过与zk重新连接并从首领哪里获取最新信息,重新成为同步负责。

        只有同步副本,才可以在之前首领副本挂掉后成为新副本首领。

    参考:

    http://kafka.apache.org/

  • 相关阅读:
    服务方式加载卸载NT驱动函数集
    《Windows核心编程》学习笔记(12)– 虚拟内存
    《Windows核心编程》学习笔记(14)– 堆
    数据库连接错误:提示TCP端口1433,sql server 2008 Connection refused:connect
    Windows驱动开发技术详解笔记
    Struts2文件上传的大小限制问题
    pragma comment的使用 pragma预处理指令详解
    解决FastCGI Error Error Number: 2147467259 (0x80004005). 和 Error Number: 1073741819 (0xc0000005).
    PHP中的日期处理
    mysql远程连接10061错误
  • 原文地址:https://www.cnblogs.com/xudong-bupt/p/8999750.html
Copyright © 2011-2022 走看看