简单理解kafka
Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。
术语解析
“Broker”: Kafka集群包含一个或多个服务器,这种服务器统称为broker。
“Topic” :每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)。
“Partition”: Partition是物理上的概念,每个Topic包含一个或多个Partition。(每个partition是一个有序的队列)
“Producer” :负责发布消息到Kafka broker。
“Consumer” :消息消费者,向Kafka broker读取消息的客户端。
“Consumer Group”: 每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)。
Producer
producer生产者
向kafka中其中一个topic发送消息。
发送模式
1、只发不管 : 只管往kafka里面发消息,不关心是否发送成功
2、同步:producer.send() 返回一个future对象,调用get方法进行同步等待可以知道发送是否成功。
3、异步:通过producer.send()中传送一个回调函数
Consumer
consumer消费者
向kafka中读取消息
读取方式
1、消息队列为点对点模式:生产者将消息放入消息队列后,由消费者主动的去拉取消息进行消费。优点是消费者拉取消息的频率可以由自己控制。但是消息队列是否有消息需要消费,在消费者端无法感知,所以在消费者端需要额外的线程去监控。
2、消息队列为订阅模式 :消费者被动接收推送,所以无需感知消息队列是否有待消费的消息!
深入了解kafka
强烈推荐:https://www.cnblogs.com/sujing/p/10960832.html