kafka是一个多分区、多副本,基于Zookeeper协调的分布式消息系统。
两种消息模型
在说kafka之前,先说下常见的两种消息模型,一种是点对点模型,一种是发布订阅模型。
点对点(P2P):Point-to-Point,指的是消息被消费后,队列中就不会在存储这一条消息。所以同一条消息只能被一个消费者消费。队列可以支持多个消费者,但是消费者也同样不可能消费已经被消费过的消息。
发布订阅:有主题的概念,消息发布者将消息发布到某个主题,消息订阅者从主题中订阅消息。通过主题,消息发布者和订阅者保持相对独立。多个消息发布者可以向相同主题发消息,多个消息订阅者也可以在同一主题订阅消息。
kafka属于典型的发布订阅模式,但其实kafka也有消费组的概念,消费组就能够支持以点对点的方式进行消费。
kafka体系架构
一个kafka体系架构,包含生产者,消费者和Broker,架构图如下:
Producer:生产者,负责发送消息到Broker。
Consumer:消费者,负责从Broker消费消息。
Broker:kafka服务器端&#