美文网首页
kafka入门

kafka入门

作者: 盈朔 | 来源:发表于2020-12-10 14:07 被阅读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的使用方式如下:

    相关文章

      网友评论

          本文标题:kafka入门

          本文链接:https://www.haomeiwen.com/subject/kdzlgktx.html