kafka基础架构

kafka消费模式

kafka是一个分布式的、基于发布/订阅模式的消息队列。

基于发布、订阅模式的消息队列有两种消费模式:

一种是pruducer发送数据后,由消息队列push数据给到consumer,由于消息队列控制着数据传输的速率,而不同consumer消费速率不一致,当消费速率低于生产速率时,consumer就忙不过来了。

kafka采用的另一种消费模式,pruducer把数据push到消息队列,然后consumer从消息队列中pull数据。由consumer自己来决定消费速率。当 consumer 速率落后于 producer 时,可以在适当的时间赶上来。这种模式也有其不足之处,在没有消息时,consumer一直在空轮询,等待数据的到来。

kafka架构

总体架构图:

broker:一个kafka服务器就是一个broker,kafka集群由多个broker组成。一个broker下可以有多个topic

producer:消息生产者,向kafka broker发消息的客户端,直接发送数据到主分区的broker上,不需要经过任何中间路由

consumer:消息消费者,从kafka broker 中pull消息的客户端

topic:消息的分类,生产者 和消费者都是面向topic

partition:分区,一个topic可以分为多个partition,每个partion是一个有序的队列

replica:partition的副本,kafka为了防止数据丢失,每个partion会有多个副本,一个Leader和多个Follower,分布到不同的broker中

副本的数量不能超过broker的数量。

leader:partition主分区,producer发送消息和consumer消费消息的对象

follower:从分区,从leader中同步数据,当leader出现故障时,follower会成为新的leader

consumer group:消费者组,由多个consumer组成。同一消费组内,每个分区只能由某一个消费者消费;多个消费者组可以同时消费。

发布了2 篇原创文章 · 获赞 5 · 访问量 448

猜你喜欢

转载自blog.csdn.net/Epoch_Elysian/article/details/105015481