美文网首页
kafka极简入门(一)--简介

kafka极简入门(一)--简介

作者: 油头粉面 | 来源:发表于2020-01-02 10:37 被阅读0次

    前言

    kafka是一款Apache组织下的一款开源流处理平台。由Scala开发语言编写实现。
    流平台具有三个关键功能:

    • 发布和订阅记录流,类似于消息队列或企业消息传递系统。
    • 以容错的持久方式存储记录流。
    • 处理记录流。

    kafka的主要应用场景:

    • 建立实时流数据管道,在系统之间进行数据传输。
    • 构建实时流应用程序以转换或响应数据流。

    kafka的几个核心概念,理解这几个概念对kafka的正确使用十分重要。
    1. topic
    消息主题,无论是发布还是消费都是以topic为单位,一般一个topic对应一种业务场景
    2. partition
    分区,一个主题可以对应1~N个分区,kafka可以保证单个分区的消息的FIFO,而不能保证整个topic消息的FIFO(除非该topic只有一个partition)。kafka的高吞吐的原理也是主要通过增加分区实现的。

    topic跟partition关系
    3. broker
    一个broker表示一台服务器,一个broker可以包含多个主题的多个分区。多个broker可以构成kafka集群。每个broker有一个唯一的id。关于分区在broker上的分配策略后面会讲到。
    kafka集群

    4. producer
    生产者,负责往指定的topic推送消息的角色。

    producer.png

    5. consumer
    消费者,负责从指定topic消费消息的角色。
    6. consumer group
    消费组,一个消费组可以包含多个消费者,一个分区只能同时给同一个消费组内的一个消费者消费(这里要注意,如果是多个消费组同时消费一个分区是允许的,而且各自的消费偏移量互不干扰)。
    7.replication
    副本集,副本分首领(leader)副本和跟随(follower)副本, 分区至少有一个leader副本,0~N个follower副本,producer和consumer负责跟leader副本交互,follower只负责同步leader的数据,以防在leader挂掉的时候,选举一个follower当选新的leader从而实现高可用。
    8.offset
    偏移量,标识一个消费者在分区中消费到了哪个位置,消费者每次消费消息的时候都会带上offset,消费完可以自动提交当前的offset或手动提交,取决于配置。

    kafka极简入门(二)--安装

    相关文章

      网友评论

          本文标题:kafka极简入门(一)--简介

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