kafka基础介绍

lixinjun8080 2019-05-22 原文

kafka基础介绍

kafka基础介绍

一、kafka介绍

  1.1主要功能

    根据官网的介绍,kafka是一个分布式流媒体的平台,它主要有三大功能:

    1.11:It lets you publish and subscribe to streams of records 发布和订阅消息流,类似消息队列的的功能,这也是将其归类为消息队列的原因

    1.12:It lets you store streams of records in a fault-tolerant way 以容错的方式记录消息流,kafka以文件的方式来存储消息流

    1.13:It lets you process streams of records as they occur. 可以在消息发布的时候进行处理

  1.2使用场景

    1.21:Building real-time streaming data pipelines that reliably get data between systems or applications.在系统和应用程序之间构建可靠的用于实时传输的管道,消息队列

       的功能

    1.22:Building real-time streaming applications that transform or react to the streams of data 构建实时的流数据处理程序来变换或者处理数据流,数据处理功能

  1.3基本机制

    kafka目前主要作为一个分布式的发布订阅的消息系统来使用,下面介绍一下kafka的基本机制

    1.31消息传输流程

    

    producer即生产者,向kafka集群发送消息,在发送消息之前,会对消息进行分类,即Topic,上图展示了两个生产者发送了分类为topic1的消息,另外一个发送了分类

    为topic2的消息

    topic即主题,通过对消息指定主题可以为消息分类,消费者可以只关注自己需要的topic中的消息

    consumer即消费者,消费者通过与kafka集群建立长连接的方式,不断的从kafka集群中拉取消息,然后对这些消息进行处理

    从上图可以看出同一个topic下的生产者和消费者数量并不是对应的

    

    1.32kafka服务器消息存储策略

    

    谈到kafka的存储,不得不提到分区,即partitions,创建一个topic的时候,同时可以指定分区的数目,分区数越多,其吞吐量也越大,但是需要的资源也越多,同时也会

    导致更高的不可用性,kafka在接到生产者发送的消息后,会根据均衡策略将消息存储到不同的分区中

      

    在每个分区中,消息以顺序存储,最晚接收的也最后被消费

 

    1.33与生产者的交互

    

    生产者向kafka集群发送消息时可以指定分区,也可以通过均衡策略来将消息发送到不同的分区中,如果不指定,就会采用默认的随机均衡策略,将数据随机的存储到不

    同的分区中

 

    1.34与消费者的交互

      

    在消费者消费消息时,kafka使用offset来记录当前消费的位置。

    在kafka的设计中,可以有多个不同的group来同时消费同一个topic下的消息,如图,我们有两个不同的group同时消费,他们的消费的记录位置offset各不相同,不互相

    干扰。

    对于一个group而言,消费者的数量不应该多于分区的数量,因为在一个group中,每个分区至多绑定在一个消费者身上,即一个消费者可以消费多个分区,但一个分区只

    能给一个消费者消费。若一个group中的消费者数量大于分区数量,多余的消费者将不会收到任何消息

    

    

    

    

发表于 2019-05-22 16:35 大漠荒野 阅读() 评论() 编辑 收藏

 

版权声明:本文为lixinjun8080原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/lixinjun8080/p/10906772.html

kafka基础介绍的更多相关文章

  1. [大数据] hadoop高可用(HA)部署(未完)

    一、HA部署架构     如上图所示,我们可以将其分为三个部分: 1.NN和DN组成Hadoop业务组件。浅绿 […]...

  2. Hive分区表动态添加字段

    场景描述:   公司埋点项目,数据从接口服务写入kafka集群,再从kafka集群消费写入HDFS文件系统,最 […]...

  3. 大数据系列4:Yarn以及MapReduce 2

    系列文章:大数据系列:一文初识Hdfs大数据系列2:Hdfs的读写操作大数据谢列3:Hdfs的HA实现 通过前 […]...

  4. Kafka并不难学

    1.为什么写这本书? 我建立了一个qq群,有很多人在群里面学习和交流,经常有人问我一些Kafka的知识,我可以 […]...

  5. 如何为Kafka集群确定合适的分区数以及分区数过多带来的弊端

    通过之前的文章《Kafka分区分配策略》和《Kafka高性能揭秘》,我们了解到:Kafka高吞吐量的原因之一就 […]...

  6. 这是使用大数据优化WordPress性能的方法

    大数据正在改变网站管理的性质。根据APM的报告,这是今年将影响wordpress管理员的最大变化之一。大数据在管理期望和衡量目标绩效方面发挥着重要作用。根据沃顿商学院的一项研究,有72家企业未能达到用户的期望。他们发现,使用大数据和分析是一件事,他们可以做些什么来实现这些目标。...

  7. 别再人云亦云了!!!你真的搞懂了RDD、DF、DS的区别吗?

    几年前,包括最近,我看了各种书籍、教程、官网。但是真正能够把RDD、DataFrame、DataSet解释得清 […]...

  8. Spark 中 RDD的运行机制

    1. RDD 的设计与运行原理 Spark 的核心是建立在统一的抽象 RDD 之上,基于 RDD 的转换和行动 […]...

随机推荐

  1. windows server 2016安装 – 拥剑公子

    windows server 2016安装 slmgr /skms kms.03k.org slmgr /at […]...

  2. 对Innodb中MVCC的理解

    一、什么是MVCC   MVCC (Multiversion Concurrency Control) 中文全 […]...

  3. ClickHouse源码笔记3:函数调用的向量化实现

    分享一下笔者研读ClickHouse源码时分析函数调用的实现,重点在于分析Clickhouse查询层实现的接口 […]...

  4. masm32基本配置与写出第一个汇编程序

    masm32基本配置与写出第一个汇编程序   在windows系统上,如果编写C/C++等程序,只需利用vis […]...

  5. Java安装教程

    一、确认 Java 没有安装过首先在命令行中确认我们的电脑上没有安装 Java1、win+r 输入cmd,打开命令行2、在命令行中输入“java -v”,查看是否安装java如果出现图片字样说明没有安装过java。二、下载并安装Ja...

  6. Java面向对象(一)

    一、Java面向对象学习的三条主线   1、Java类及类的成员。     属性、方法、构造器、代码块、内部类 […]...

  7. Vue Study [1]: Vue Setup

    Description The article for vue.js Setup. Original post […]...

  8. Serverless无服务应用架构纵横谈

    Serverless无服务应用架构纵横谈   一、Serverless是啥 自从互联网兴起以来,Server就 […]...

展开目录

目录导航