kafka入门

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

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

1,消息传输

2,数据存储

3,如何消费

如何进行消息传输?

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

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

如何实现数据存储?

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

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

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

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 Kafka概述 1.1 定义 Kafka是一个分布式的基于发布/订阅模式的消息队列,主要应用于大数据实时处理领...
    djm猿阅读 3,887评论 0 4
  • 为获得更好的阅读体验,建议您访问原文地址:传送门前言:在之前的文章里面已经了解到了「消息队列」是怎么样的一种存在(...
    我没有三颗心脏阅读 10,213评论 4 99
  • 本文为小马阅读《再谈基于 Kafka 和 ZooKeeper 的分布式消息队列原理》一文的笔记摘要记录,便于日后复...
    小马过河R阅读 3,780评论 4 8
  • 以下内容部分翻译至 http://kafka.apache.org/intro kafka介绍 我们认为,一个流处...
    若与阅读 12,807评论 0 22
  • Kafka Kafka 核心概念 什么是 Kafka Kafka是由Apache软件基金会开发的一个开源流处理平台...
    janlle阅读 4,001评论 0 0