kafka基本概念

Kafka[1] 是一种高吞吐量[2] 的分布式发布订阅消息系统,有如下特性:
  • 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。
  • 高吞吐量[2] :即使是非常普通的硬件Kafka也可以支持每秒数百万[2] 的消息。
  • 支持通过Kafka服务器和消费机集群来分区消息。
  • 支持Hadoop并行数据加载。[3]


kafka基本概念:

  • 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)。


消费模式:

1 分区消费模式 vs 组消费模式

kafka基本概念

分区的日志被分发到集群内的服务器上,每台服务器负责处理一些分区和对这些分区的读写请求。
为满足容错需求,各分区的数据都按一个可配置的量被复制到集群的其他服务器上
每个分区都有一个领导服务器和0到多个追随者服务器。领导服务器负责对这个分区的所有读写操作
而追随服务器则被动的复制领导服务器。
如果领导服务器宕机,其中一台追随者服务器会被自动选举为新领导。一个分区的领导服务器可能是
了另外几个分区的追随者服务器,所以总体上集群负载是均衡的