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教程之前,您必须对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
供参考

原文地址:https://www.cnblogs.com/a00ium/p/10849861.html

时间: 2024-08-26 17:57:03

Apache Kafka教程的相关文章

Windows OS上安装运行Apache Kafka教程

本文转自:http://geek.csdn.net/news/detail/52976 下面是分步指南,教你如何在Windows OS上安装运行Apache Zookeeper和Apache Kafka. 简介 本文讲述了如何在Windows OS上配置并启动Apache Kafka,这篇指南将会指导你安装Java和Apache Zookeeper. Apache Kafka是一个快速可扩展的消息队列,能够应对繁重的读写负载,即IO相关工作.更多信息请参见http://kafka.apache.

Apache Kafka教程:入门介绍

Apache Kafka是一个开放源代码流处理软件平台,用于处理实时数据存储.Apache Kafka在两方(即发送方和接收方)之间充当经纪人.它一天可以处理大约数万亿个数据事件. Apache Kafka是一个基于分布式流式处理过程的软件平台.Apache Kafka是一个发布-订阅消息传递系统,它也允许在应用程序,服务器和处理器之间交换数据. Apache Kafka最初是由LinkedIn开发的,后来捐赠给了Apache软件基金会.目前,它由Apache Software Foundati

Apache Kafka教程:基础概念

主题Topic通常,主题是指某些特定的相互关联的概念的特定标题或名称. 在Kafka中,主题一词是指用于存储和发布特定数据流的类别或通用名称. 基本上,Kafka中的主题类似于数据库中的表table,但不包含所有约束. 在Kafka中,我们可以根据需要创建n个主题. 它由其名称标识,这取决于用户的选择. 生产者将数据发布到主题,而消费者则通过订阅从主题中读取数据.分区Partitions主题分为几个部分,这些部分称为主题的分区. 这些分区按顺序分开. 数据内容存储在主题内的分区中. 因此,在创建

JMeter进行Apache Kafka负载测试

1.卡夫卡负载测试 在这个Apache Kafka教程中,我们将了解如何使用Apache JMeter,如何在Apache Kafka上执行Kafka负载测试.此外,这个Kafka负载测试教程教我们如何配置生产者和消费者,这意味着使用JMeter 开发Apache Kafka Consumer和Kafka Producer.最后,我们将看到在Jmeter中构建Kafka负载测试场景.然而,在Kafka负载测试之前,让我们学习Kafka的简要介绍,以便更好地理解其他工作. 使用JMeter进行Ap

顶级Apache Kafka术语和概念

1.卡夫卡术语 基本上,Kafka架构  包含很少的关键术语,如主题,制作人,消费者, 经纪人等等.要详细了解Apache Kafka,我们必须首先理解这些关键术语.因此,在本文“Kafka术语”中,我们将学习所有这些Kafka术语,这将有助于我们建立Kafka知识的坚实基础.那么,让我们从Apache Kafka术语开始. Apache Kafka术语和概念 2.卡夫卡术语清单 在这篇Apache Kafka教程中,下面列出了最突出的Kafka术语,这些术语可以帮助我们建立Kafka知识的坚实

Spring for Apache Kafka 1.1.0 Milestone 2 发布

Spring for Apache Kafka 1.1.0 Milestone 2 发布了. 此版本进行了一些bug修复,及开发以下新功能: 1. 当使用 @KafkaListener 时,M2 可以处理一批讯息(腾云科技ty300.com).例如: 2. 您现在可以执行寻求监听操作--当 Kafka 进行群组管理进行了划分是,它允许设置初始化(基础教程qkxue.net).您还可以执行初始化后的任意操作. 详情请查看: https://spring.io/blog/2016/09/08/spr

Kafka教程(一)Kafka入门教程

1 Kafka入门教程 1.1 消息队列(Message Queue) Message Queue消息传送系统提供传送服务.消息传送依赖于大量支持组件,这些组件负责处理连接服务.消息的路由和传送.持久性.安全性以及日志记录.消息服务器可以使用一个或多个代理实例. JMS(Java Messaging Service)是Java平台上有关面向消息中间件(MOM)的技术规范,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生.发送.接收消息的接口简化企业应用的开发,翻译为Java

Apache Kafka用例

1.目标 在我们上一篇Kafka教程中,我们讨论了Kafka Pros and Cons.今天,在这篇Kafka文章中,我们将讨论Apache Kafka用例和Kafka应用程序.Kafka是新数据堆栈中的关键技术之一,在过去几年中,开发人员对Kafka的使用感兴趣.虽然,如果你不了解Kafka,它是一个高度可扩展的发布 - 订阅消息系统.此外,还有几个Kafka用例和Kafka应用程序. 那么,让我们一个一个地讨论Apache Kafka的Kafka用例和应用. Apache Kafka用例和

Apache Kafka工作流程| Kafka Pub-Sub Messaging

1.目标 在我们上一篇Kafka教程中,我们讨论了Kafka Docker.今天,我们将讨论Kafka Workflow.此外,我们将详细介绍Pub-Sub Messaging的工作流程以及Queue Messaging / Consumer Group的工作流程.此外,我们将看到ZooKeeper在Apache Kafka中的作用.那么,让我们从Kafka Workflow开始吧. Apache Kafka工作流程| Kafka Pub-Sub Messaging 2.什么是Kafka Wor