什么是Kafka?
Kafka是一种基于发布/订阅的分布式消息队列。它具有以下几个特性:
Fast
一个单一的Kafka broker每秒钟就可以处理来自上千台客户端的数百兆的读写信息。
Scalable
Kafka被设计成允许以一个cluster作为一个大型组织的中心数据的支柱,同时它也可以弹性透明的进行在线扩展。
Durable
消息会被持久化到磁盘上并且会在cluster内部复制来防止数据丢失。
Distributed by Design
Kafka拥有现代化的cluster-centric设计,这一点使它提供了强大的持久性和容错性保证。
Kafka架构图
Broker
Kafka集群包含一个或多个服务器,这种服务器被称为broker。
Topic
每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)
Partition
Parition是物理上的概念,每个Topic包含一个或多个Partition。
Producer
负责发布消息到Kafka broker。
Consumer
消息消费者,向Kafka broker读取消息的客户端。