Kafka消息队列基本概念

1、认识kafka

(1)kafka是一个分布式的基于发布/订阅模式的消息队列。
消息队列的两种模式:

  • 点对点模式(一对一):消息生产者生产消息发送到queue中,然后消息消费者从queue中取出并且消费消息。消息被消费以后,queue中不再有存储,所以消息消费者不可能消费到已经被消费的消息。Queue支持存在多个消费者,但是对一个消息而言,只会有一个消费者可以消费。
  • 发布/订阅模式(一对多):消息生产者(发布)将消息发布到topic中,同时有多个消息消费者(订阅)消费该消息。和点对点方式不同,发布到topic的消息会被所有订阅者消费。

(2)kafka相关概念:

  • Producer:消息生产者,将消息push到Kafka集群中的Broker。
  • Consumer:消息消费者,从Kafka集群中pull消息,消费消息。
  • Consumer Group:消费者组,由一到多个Consumer组成,每个Consumer都属于一个Consumer Group。消费者组在逻辑上是一个订阅者。消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费;消费者组之间互不影响。即每条消息只能被Consumer Group中的一个Consumer消费;但是可以被多个Consumer Group组消费。这样就实现了单播和多播。
  • Broker:一台Kafka服务器就是一个Broker,一个集群由多个Broker组成,每个Broker可以容纳多个Topic。
  • Topic:消息的类别或者主题,逻辑上可以理解为队列。Producer只关注push消息到哪个Topic,Consumer只关注订阅了哪个Topic。
  • Partition:负载均衡与扩展性考虑,一个Topic可以分为多个Partition,物理存储在Kafka集群中的多个Broker上。可靠性上考虑,每个Partition都会有备份Replica。
  • Replica:Partition的副本,为了保证集群中的某个节点发生故障时,该节点上的Partition数据不会丢失,且Kafka仍能继续工作,所以Kafka提供了副本机制,一个Topic的每个Partition都有若干个副本,一个Leader和若干个Follower。
  • Leader:Replica的主角色,Producer与Consumer只跟Leader交互。
  • Follower:Replica的从角色,实时从Leader中同步数据,保持和Leader数据的同步。Leader发生故障时,某个Follower会变成新的Leader。
  • Controller:Kafka集群中的其中一台服务器,用来进行Leader election以及各种Failover(故障转移)。
  • ZooKeeper:Kafka通过Zookeeper存储集群的meta等信息。

猜你喜欢

转载自blog.csdn.net/fish332/article/details/120356668
今日推荐