kafka入门

2020-12-10  本文已影响0人  盈朔

kafka是一个消息队列,使用模型如下:

一个基本的消息队列需要保证如下功能:

1,消息传输

2,数据存储

3,如何消费

如何进行消息传输?

kafka有有个对应topic概念。就是生成者与消费者之间进行通信,需要先在kafka上面建立一个topic。模型如下:

不过由于可能会有很多的消费者,很多生成者,这样就会对kafka性能产生影响,所以kafka又有了区(partition)的概念,就是可以对topic再进行划分,划分多个区,可以理解为对一个消息队列有分了很多的段,每段去维护自己的数据。模型如下。

如何实现数据存储?

首先应该知道任何主机有可能宕机,这样发送到该消息队列上面的数据就会丢失。如何保证消息队列的高可用性?需要对数据做赘余或存储。kafka会对partition进行备份。并且会对本机上面的partition进行落盘存储。kafka对partition进行备份的方式如下:

kafka的落盘方式并不是一有数据就进行落盘,是当有一批数据的时候,批量进行落盘。而且数据并不是消费者接收到就销毁。而是数据会有一个定时时间,时间到了才会对数据进行删除。

kafka实现消费的方式是什么?

一般消费模式有两个,一种是队列方式,队列中的一条消息被队列中的一个消费者处理掉。另一种方式是发布订阅模式,每条消息对应多个消费者。前提是消费者需要对消息提前进行订阅。

kafka同时具备以上两种消费模式,所以kafka中抽象出一个Consumer Group来。group的使用方式如下:

上一篇 下一篇

猜你喜欢

热点阅读