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教程之前,您必须对JavaScala,分布式消息传递系统和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教程的更多相关文章

  1. Windows OS上安装运行Apache Kafka教程

    Windows OS上安装运行Apache Kafka教程 下面是分步指南,教你如何在Windows OS上安装运行Apache Zookeeper和Apache Kafka. 简介 本文讲述了如何在 ...

  2. Apache Kafka - 介绍

    原文地址地址: http://blogxinxiucan.sh1.newtouch.com/2017/07/12/Apache-Kafka-介绍/ Apache Kafka教程 之 Apache Ka ...

  3. 使用JMeter进行Apache Kafka负载测试

    1.卡夫卡负载测试 在这个Apache Kafka教程中,我们将了解如何使用Apache JMeter,如何在Apache Kafka上执行Kafka负载测试.此外,这个Kafka负载测试教程教我们如 ...

  4. Kafka排队:Apache Kafka作为消息传递系统

    1.目标 在这个Apache Kafka教程中,我们将学习Apache Kafka  Queuing 的概念  .基本上,Kafka中的排队是传统消息传递的模型之一.所以,让我们首先简要介绍Kafka ...

  5. 顶级Apache Kafka术语和概念

    1.卡夫卡术语 基本上,Kafka架构  包含很少的关键术语,如主题,制作人,消费者, 经纪人等等.要详细了解Apache Kafka,我们必须首先理解这些关键术语.因此,在本文“Kafka术语”中, ...

  6. JMeter进行Apache Kafka负载测试

    1.卡夫卡负载测试 在这个Apache Kafka教程中,我们将了解如何使用Apache JMeter,如何在Apache Kafka上执行Kafka负载测试.此外,这个Kafka负载测试教程教我们如 ...

  7. Kafka工具教程 - Apache Kafka中的2个重要工具

    1.目标 - 卡夫卡工具 在我们上一期的Kafka教程中,我们讨论了Kafka Workflow.今天,我们将讨论Kafka Tool.首先,我们将看到卡夫卡的意义.此外,我们将了解两个Kafka工具 ...

  8. Apache Kafka 概述

    kafka教程,完全参照w3school: https://www.w3cschool.cn/apache_kafka/apache_kafka-dac11yot.html 以下是入门学习过程中摘录的 ...

  9. Apache kafka v1.0.0 部署文档

    简介: Apache Kafka 是一个 Scala 语言编写的可扩展.分布式.高性能的容错消息发布.订阅系统. 官网地址:http://kafka.apache.org 中文教程:http://ww ...

随机推荐

  1. Python中如何使用线程池和进程池?

    进程池的使用 为什么要有进程池?进程池的概念. 在程序实际处理问题过程中,忙时会有成千上万的任务需要被执行,闲时可能只有零星任务. 那么在成千上万个任务需要被执行的时候,我们就需要去创建成千上万个进程 ...

  2. 自用 goodsdetail

    JSON.parse(data.parameter)  存的字符串 <select id="getGoodsBaseInfoById" resultType="co ...

  3. 洛谷P1577 切绳子题解

    洛谷P1577 切绳子题解 题目描述 有N条绳子,它们的长度分别为Li.如果从它们中切割出K条长度相同的 绳子,这K条绳子每条最长能有多长?答案保留到小数点后2位(直接舍掉2为后的小数). 输入输出格 ...

  4. 解决IE报错:Locale 'chinese' is not well-formed,或RangeError: 区域设置“chinese”的格式不正确的问题

    接之前的此博客问题处理:js处理时间时区问题 由于 toLocaleString():据本地时间格式,把 Date 对象转换为字符串.总是会带有上午/下午,所以我加了参数:new Date('2019 ...

  5. 阿里云域名注册详解与Github绑定

    关注我,每天都有优质技术文章推送,工作,学习累了的时候放松一下自己. 本篇文章同步微信公众号 欢迎大家关注我的微信公众号:「醉翁猫咪」 今教一篇如何注册域名,拥有自己的域名是不是很爽呢?答案是是的,那 ...

  6. 设计模式之MVC和MVT

    MVC各部分的功能 全拼为Model-View-Controller(如上图所示) M(模型)全拼为Model,主要封装对数据库层的访问(内嵌ORM框架),对数据库中的数据进行增.删.改.查操作. V ...

  7. 欧拉法求解常微分方程(c++)【转载】

    摘自<c++和面向对象数值计算>,代码简洁明快,采用类进行封装实现代码,增强代码的重用性,通过继承可实现代码的重用,采用函数指针,通用性增强,在函数改变时只需要单独改变函数部分的代码,无需 ...

  8. 将lol人物模型导入到Unity3d

      接下来我打算将提取出来的lol人物模型导入到Unity3D中,这样会更加好玩!(不知道如何提取lol人物模型的话请看该链接)   首先我们已经把dae文件导入到c4d中了,可以看到这是一只吹笛子的 ...

  9. 剑指offer:丑数

    题目描述: 把只包含质因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含质因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 解题 ...

  10. 一次解决idea maven settings.xml文件不生效

    一直使用eclipse,在eclipse中可以手动指定global和user settings,并且settings的文件名称可以不是settings.xml,只要内容符合maven规范就行.如下: ...