Kafka

Apache Kafka是一个开源分布式消息平台,已经成为大数据生态中服务间通信的默认选择,Kafka支持可扩展的分区提供更大吞吐的并行处理,也支持分区的复制容错提供高可用的能力,常用在数据管道、流计算、数据集成等关键任务上。

Kafka官网:https://kafka.apache.org/

Kafka集群组件

Kafka组件

Kafka中的主要角色包括:Producer(生产者)、Consumer(消费者)、Broker(代理)、Topic(主题)、Partition(分区)等。

Broker: Broker可以托管Topic和Partition并进行消息的发送和接受,充当Producer和Consumer的中介。Kafka集群中由多个Broker组合为集群,每个Broker可以实现每秒几万~几十万的读写,Broker之间是透明的,同时生产者和消费者不会直接连接,而是通过Broker进行业务解耦,所以相互之间没有影响。

Topic: 用来区分存放不同类型消息的主题。

Partition: 每个Topic包括多个Partition,每个Partition中的消息是有顺序的,多个Partition处理消息是并行的。

Producer: 生产者通过连接到Broker并发布消息到Topic或者指定的Partition。

Consumer: 消费者通过连接到Broker可以接收指定Topic以及指定Partition的数据,如果不指定分区,Kafka将根据可用分区数量来决定并可以选择多个分区,但是在同一个消费者组下,一个Topic不能拥有比Partition数量更多的消费者。