Apache Kafka教程
1.卡夫卡教程
今天,我们正在使用Apache Kafka Tutorial开始我们的新旅程。在这个Kafka教程中,我们将看到什么是Kafka,Apache Kafka历史以及Kafka的原因。此外,我们将学习Kafka Architecture,Kafka和Kafka Partition的组件。此外,我们将讨论Kafka和Kafka用例中的各种比较。除此之外,我们将在这个Kafka教程中看到各种术语,如Kafka Broker,Kafka Cluster,Kafka Consumer,Kafka Topics等。
所以,让我们开始Apache Kafka教程。
Apache Kafka教程 - 初学者卡夫卡
2.什么是卡夫卡?
在使用基于消息的主题实现生产者和消费者之间的通信时,我们使用Apache Kafka。Apache Kafka是一种快速,可扩展,容错,发布 - 订阅的消息传递系统。基本上,它为高端新一代分布式应用程序设计了一个平台。
此外,它允许大量永久或临时消费者。Kafka的最佳功能之一是,它具有高可用性和对节点故障的弹性,并支持自动恢复。此功能使Apache Kafka成为实际数据系统中大规模数据系统组件之间通信和集成的理想选择。
此外,该技术取代了传统的消息代理,能够提供更高的吞吐量,可靠性和复制,如JMS,AMQP等等。此外,核心抽象Kafka还提供Kafka经纪人,Kafka制片人和Kafka消费者。Kafka代理是Kafka集群上的一个节点,它的用途是持久化并复制数据。Kafka Producer将消息推送到名为Kafka Topic的消息容器中。而卡夫卡消费者则从卡夫卡主题中汲取信息。
在继续学习Kafka教程之前,让我们先了解一下Kafka中术语Messaging System的实际含义。
一个。卡夫卡的消息系统
当我们将数据从一个应用程序传输到另一个应用程序时,我们使用消息系统。结果是,在不担心如何共享数据的情况下,应用程序可以仅关注数据。在可靠消息排队的概念上,基于分布式消息传递。但是,消息在客户端应用程序和消息传递系统之间异步排队。有两种类型的消息传递模式可用,即点对点和发布 - 订阅(pub-sub)消息传递系统。但是,大多数消息传递模式都遵循pub-sub。
你知道Kafka Cluster吗?
Apache Kafka - Kafka消息传递系统
- 点对点消息系统
这里,消息持久存储在队列中。尽管如此,即使一个或多个消费者可以使用队列中的消息,也可以仅由最多一个消费者使用特定消息。此外,它确保消费者一旦在队列中读取消息,它就会从该队列中消失。
- 发布 - 订阅消息系统
此处,消息将保留在主题中。在此系统中,Kafka Consumers可以订阅一个或多个主题并使用该主题中的所有消息。此外,消息制作者将发布者和消息消费者称为订阅者。
3. Apache Kafka的历史
以前,LinkedIn面临着从网站上大量数据的低延迟摄取到lambda架构的问题,该架构可以处理实时事件。作为一种解决方案,Apache Kafka是在2010年开发的,因为之前没有任何解决方案可以解决这个缺点。
但是,有可用于批处理的技术,但这些技术的部署细节与下游用户共享。因此,虽然涉及实时处理,但这些技术还不够合适。然后,在2011年,卡夫卡被公之于众。
4.我们为什么要使用Apache Kafka Cluster?
众所周知,大数据中存在大量数据。而且,在涉及大数据时,存在两个主要挑战。一种是收集大量数据,另一种是分析收集的数据。因此,为了克服这些挑战,我们需要一个消息传递系统。然后Apache Kafka证明了它的实用性。Apache Kafka有许多好处,例如:
- 通过存储/发送事件来跟踪Web活动以进行实时处理。
- 提醒和报告运营指标。
- 将数据转换为标准格式。
- 连续处理流数据到主题。
因此,该技术因其广泛使用而对一些最流行的应用程序(如ActiveMQ,RabbitMQ,AWS等)进行了激烈的竞争。
5.卡夫卡教程 - 观众
希望 使用Apache Kafka消息传递系统在大数据分析领域开展职业的专业人士应该参考这篇Kafka Tutorial文章。它将使您完全了解Apache Kafka。
6.卡夫卡教程 - 先决条件
在继续本Apache Kafka教程之前,您必须对Java,Scala,分布式消息传递系统和Linux环境有很好的理解。
7.卡夫卡建筑
下面我们将讨论这个Apache Kafka教程中的四个核心API:
Apache Kafka - Kafka Architecture
一个。Kafka Producer API
此Kafka Producer API允许应用程序将记录流发布到一个或多个Kafka主题。
湾 Kafka Consumer API
要订阅一个或多个主题并处理在应用程序中生成的记录流,我们使用此Kafka Consumer API。
C。Kafka Streams API
为了充当流处理器,消耗来自一个或多个主题的输入流,并为一个或多个输出主题生成输出流,并有效地将输入流转换为输出流,此Kafka Streams API允许应用。
d。Kafka Connector API
此Kafka Connector API允许构建和运行将Kafka主题连接到现有应用程序或数据系统的可重用生产者或使用者。例如,关系数据库的连接器可能捕获对表的每个更改。
Apache Kafka安全| Kafka的需求和组成部分
8.卡夫卡组件
使用以下组件,Kafka实现了消息传递:
一个。卡夫卡主题
基本上,Kafka如何在其系统中存储和组织消息,本质上是一组消息是主题。此外,我们可以复制和分区主题。这里,复制是指副本和分区指的是分区。此外,将它们可视化为日志,其中,Kafka存储消息。但是,这种复制和分区主题的能力是实现Kafka容错和可扩展性的因素之一。
Apache Kafka - Kafka主题
湾 卡夫卡制片人
它将消息发布到Kafka主题。
C。卡夫卡消费者
该组件订阅主题,读取和处理来自主题的消息。
d。卡夫卡经纪人
Kafka Broker管理主题中的消息存储。如果Kafka有多个经纪人,那就是我们所说的Kafka集群。
即 卡夫卡动物园管理员
为了向经纪人提供有关系统中运行的流程的元数据,并促进健康检查和经纪人领导选举,Kafka使用Kafka zookeeper。
9.卡夫卡教程 - 日志解剖学
我们将日志视为此Kafka教程中的分区。基本上,数据源将消息写入日志。其中一个优点是,一个或多个消费者在任何时候从他们选择的日志中读取。这里,下图显示了数据源正在写入日志,并且消费者正在以不同的偏移量读取日志。
Apache Kafka教程 - 日志解剖
10.卡夫卡教程 - 数据日志
通过Kafka,消息可以保留相当长的时间。此外,消费者可以根据自己的方便阅读。但是,如果Kafka配置为将消息保留24小时且消费者停留的时间超过24小时,则消费者将丢失消息。并且,如果消费者的部分停机时间仅为60分钟,则可以从最后已知的偏移量读取消息。卡夫卡没有说明消费者从主题中读到什么。
11.卡夫卡教程 - 卡夫卡分区
每个Kafka经纪人都有几个分区。此外,每个分区可以是主题的领导者或副本。此外,随着使用新数据更新副本,Leader负责对主题的所有写入和读取。如果领导者以某种方式失败,副本将成为新的领导者。
Apache Kafka教程 - Kafka中的分区
12. Apache在Kafka中的重要性
Apache Kafka是用纯Java编写的,Kafka的本机API也是java。但是,许多其他语言,如C ++,Python, .Net,Go等也支持Kafka。不过,一个不需要使用第三方库的平台就是Java。另外,我们可以说,用Java语言编写代码会有点开销。
另外,如果我们需要Kafka标准的高处理速率,我们可以使用 Java 语言。此外,Java为Kafka消费者客户提供了良好的社区支持。因此,在Java中实现Kafka是一个正确的选择。
13.卡夫卡用例
Kafka有几个使用案例,说明我们实际使用Apache Kafka的原因。
- 消息
对于更传统的消息代理,Kafka可以作为替代品。我们可以说Kafka具有更好的吞吐量,内置分区,复制和容错功能,这使其成为大规模消息处理应用程序的理想解决方案。
- 度量
对于运营监控数据,Kafka找到了良好的应用程序。它包括汇总分布式应用程序的统计信息,以生成操作数据的集中式提要。
- 活动采购
由于它支持非常大的存储日志数据,这意味着Kafka是事件源的应用程序的优秀后端。
14.卡夫卡教程 - 卡夫卡比较
许多应用程序提供与Kafka相同的功能,如ActiveMQ,RabbitMQ,Apache Flume,Storm和Spark。那么为什么要选择Apache Kafka而不是其他人呢?
我们来看下面的比较:
一个。Apache Kafka与Apache Flume
Kafka教程 - Apache Kafka vs Flume
一世。工具类型
Apache Kafka - 对于多个生产者和消费者,它是一种通用工具。
Apache Flume - 它是一种用于特定应用程序的专用工具。
II。复制功能
Apache Kafka - 使用摄取管道,它复制事件。
Apache Flume- 它不会复制事件。
湾 RabbitMQ与Apache Kafka
最重要的Apache Kafka替代品之一是RabbitMQ。那么,让我们看看它们之间的区别如何:
Kafka教程 - Kafka与RabbitMQ
一世。功能
Apache Kafka - 基本上,Kafka是分布式的。此外,凭借有保证的持久性和可用性,数据可以共享和复制。
RabbitMQ - 它对这些功能的支持相对较少。
II。性能速度
Apache Kafka -其性能速率高达100,000条/秒。
RabbitMQ - 然而,RabbitMQ 的性能速率约为20,000条/秒。
III。处理
Apache Kafka -它允许可靠的日志分布式处理。此外,Kafka Streams内置的流处理语义。
RabbitMQ -在这里,消费者只是基于FIFO,从HEAD读取并处理1乘1.
让我们学习Kafka与RabbitMQ
C。传统的排队系统与Apache Kafka
Kafka教程 - 传统排队系统与Apache Kafka
一世。保留
传统排队系统 的消息 - 大多数排队系统在通常从队列末尾处理消息后删除消息。
Apache Kafka - 此处,消息在处理后仍然存在。当消费者收到它们时,它们不会被移除。
II。基于逻辑的处理
传统的排队系统 - 它不允许基于类似的消息或事件处理逻辑。
Apache Kafka - 它允许基于类似的消息或事件处理逻辑。
所以,这就是Apache Kafka Tutorials。希望你喜欢我们的解释。
15.结论:Kafka教程
因此,在这个Kafka教程中,我们已经看到了Apache Kafka的概念。此外,我们讨论了Kafka组件,用例和Kafka架构。最后,我们看到了Kafka与其他消息传递工具之间的比较。此外,如果您对Kafka Tutorial有任何疑问,请随时在评论部分询问。
另请参阅 -
Kafka Consumer
供参考
Apache Kafka教程的更多相关文章
- Windows OS上安装运行Apache Kafka教程
Windows OS上安装运行Apache Kafka教程 下面是分步指南,教你如何在Windows OS上安装运行Apache Zookeeper和Apache Kafka. 简介 本文讲述了如何在 ...
- Apache Kafka - 介绍
原文地址地址: http://blogxinxiucan.sh1.newtouch.com/2017/07/12/Apache-Kafka-介绍/ Apache Kafka教程 之 Apache Ka ...
- 使用JMeter进行Apache Kafka负载测试
1.卡夫卡负载测试 在这个Apache Kafka教程中,我们将了解如何使用Apache JMeter,如何在Apache Kafka上执行Kafka负载测试.此外,这个Kafka负载测试教程教我们如 ...
- Kafka排队:Apache Kafka作为消息传递系统
1.目标 在这个Apache Kafka教程中,我们将学习Apache Kafka Queuing 的概念 .基本上,Kafka中的排队是传统消息传递的模型之一.所以,让我们首先简要介绍Kafka ...
- 顶级Apache Kafka术语和概念
1.卡夫卡术语 基本上,Kafka架构 包含很少的关键术语,如主题,制作人,消费者, 经纪人等等.要详细了解Apache Kafka,我们必须首先理解这些关键术语.因此,在本文“Kafka术语”中, ...
- JMeter进行Apache Kafka负载测试
1.卡夫卡负载测试 在这个Apache Kafka教程中,我们将了解如何使用Apache JMeter,如何在Apache Kafka上执行Kafka负载测试.此外,这个Kafka负载测试教程教我们如 ...
- Kafka工具教程 - Apache Kafka中的2个重要工具
1.目标 - 卡夫卡工具 在我们上一期的Kafka教程中,我们讨论了Kafka Workflow.今天,我们将讨论Kafka Tool.首先,我们将看到卡夫卡的意义.此外,我们将了解两个Kafka工具 ...
- Apache Kafka 概述
kafka教程,完全参照w3school: https://www.w3cschool.cn/apache_kafka/apache_kafka-dac11yot.html 以下是入门学习过程中摘录的 ...
- Apache kafka v1.0.0 部署文档
简介: Apache Kafka 是一个 Scala 语言编写的可扩展.分布式.高性能的容错消息发布.订阅系统. 官网地址:http://kafka.apache.org 中文教程:http://ww ...
随机推荐
- vue解决大文件断点续传
一.概述 所谓断点续传,其实只是指下载,也就是要从文件已经下载的地方开始继续下载.在以前版本的HTTP协议是不支持断点的,HTTP/1.1开始就支持了.一般断点下载时才用到Range和Content- ...
- D3.js的v5版本入门教程(第四章)—— 理解Update、Enter、Exit
D3.js的v5版本入门教程(第四章) Update.Enter.Exit是D3.js中很重要的概念,下面来讲一下它们到底是什么?(当你看完后.你就会知道如果数据集个数和选择集个数不匹配的情况下使用d ...
- Service与Activity通信 回调方式***
要实现service与activity的高强度通信用什么方法? service与activity之前的通信方式有很多,回调接口方式.观察者模式.广播.还有handler等,方法有很多,但要高强度地通信 ...
- 性能测试指标:TPS,吞吐量,并发数,响应时间
性能测试指标:TPS,吞吐量,并发数,响应时间 常用的网站性能测试指标有:TPS.吞吐量.并发数.响应时间.性能计数器等. 并发数并发数是指系统同时能处理的请求数量,这个也是反应了系统的负载能力. 响 ...
- C# default(T)关键字
C#关键词default函数,default(T)可以得到该类型的默认值. C#在类初始化时,会给未显示赋值的字段.属性赋上默认值,但是值变量却不会. 值变量可以使用默认构造函数赋值,或者使用defa ...
- AIX 系统参数配置
AIX 系统参数配置 原创 Linux操作系统 作者:fanhongjie 时间:2008-05-08 22:46:37 540 0 AIX内核属于动态内核,核心参数基本上可以自动调整,因此当系统安装 ...
- jdbc调用存储过程获取多个结果集
jdbc调用存储过程获取多个结果集 2017年07月26日 21:20:22 Kenny-Liu 阅读数:1486 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...
- chrome安装react-devtools开发工具插件
1.去git上下载react-devtools文件到本地,https://github.com/facebook/react-devtools 2.进入到react-devtools-master文件 ...
- pytorch保证每次运行使用的随机数都相同的方法
其实在代码的开头添加下面几句话即可: # 保证训练时获取的随机数都是一样的 init_seed = torch.manual_seed(init_seed) torch.cuda.manual_see ...
- Flutter中管理路由栈的方法和应用
原文地址:https://www.jianshu.com/p/5df089d360e4 本文首先讲的Flutter中的路由,然后主要讲下Flutter中栈管理的几种方法. 了解下Route和Navig ...