kafka介绍

JAVA 2019-06-21

Kafka是什么

Kafka是一个由Scala和java编写的高吞吐量的分布式发布订阅消息

官网地址:http://kafka.apache.org/intro

快速阅读

kafka是一个消息队列.生产者通过网络把消息发到kafka集群,集群向消费者提供消息 。每个消息 以topic为单位。消费者以组为单位。与zookeeper保持心跳连接 。只有在leader不工作时才与follower进行交互 。消费者通过偏移量offset 从指定位置读取消息 ,生产者推送消息 ,消费者拉取消息

KafKa特性1561129596645.png

  1. 持久化消息 存在硬盘上。比较稳定
  2. 高吞吐量,每秒数百万
  3. 支持通过Kafka服务器和消费机集群来分区消息。
  4. 支持Hadoop并行数据加载

架构

1561123391579.png

定义

  • Broker

    Kafka集群包含一个或多个服务器,这种服务器被称为broker [5]
    
  • Topic

    每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)
    
  • Partition

    Partition是物理上的概念,每个Topic包含一个或多个Partition.
    
  • Producer

    负责发布消息到Kafka broker
    
  • Consumer

    消息消费者,向Kafka broker读取消息的客户端。
    
  • Consumer Group

    每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)
    

写和读只能从leader中读,Flllower不读。

如果leader挂了。Follower为成leader

偏移量Offset

消费者和集群都和Zookeeper有关系


本文由 hcb 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论