发布/订阅消息中间件 也被称为分布式流平台
最初是为了解决LinkedIn数据通道问题,最后捐献给了Apache,是Apache的顶级项目。
topic
主题,Kafka根据topic对消息进行归类,发布到Kafka集群的每条消息都需要指定一个topic
partition
分区,一个topic可以分为多个partition,每个partition内部信息是有序的
producer
消息生产者,向broker发送消息的客户端
comsumer
消息消费者,从broker读取消息的客户端
broker
代理服务器,Kafka的消息处理节点。一个Kafka节点就是一个broker,一个或者多个broker可以组成一个Kafka集群
支持多生产者
Kafka支持多个生产者使用多个topic或者一个topic同时发送消息到broker,无需为每个生产者提供一个broker。
支持多消费者
Kafka支持多个消费者订阅单个topic的消息,消费者按组分类,同一个消费组的消费者,只有一个comsumer可以消费消息,不同的消费组默认轮询消费消息。
消息支持持久化
消息按照我们的配置选项保存在磁盘,意味着不用担心消息丢失。
可扩展
支持集群扩展,当处理的数据增长比较快时,可以扩展broker节点,削峰填谷,不影响系统的整体性能。另外Kafka可以容忍单个或者一部分broker宕机,也不会对系统造成影响。
高性能
在高负载下,消息的延迟也很低,在秒级之内。