失效链接处理 |
Kafka技术参考手册 PDF 下载
本站整理下载:
相关截图:
主要内容:
1.1 介绍
企业由数据驱动。我们接受信息,对其进行分析和操作,并创建更多的输出。每个应用程序都会创建数据,无论是日志消息,指标,用户活动,传出消息还是其它。数据的每个字节都有一个故事要讲,一些导入将通知下一步要做的事情。为了知道那是什么,我们需要从创建位置到可以分析的位置获取数据。然后,我们需要将结果返回到可以执行它们的位置。
我们执行此操作的速度越快,我们的组织就可以越敏捷和响应速度越快。我们在移动数据上花费的精力越少,我们就可以将更多精力放在手头的核心业务上。这就是为什么管道是数据驱动型企业中至关重要的组成部分的原因。我们如何移动数据几乎与数据本身一样重要。
Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。
在Kafka中要学习的概念分为4点。
第1点,角色,包括Producer、Consumer、Consumer group以及Controller、Leader、Follower。
第2点,数据的组织结构,包括Topic、Partition、Replica、Segment。
第3点,工作机制,包括Rebalance、ACK、Transaction、Log deletion、Log compaction、Leader epoch。
第4点,重要概念,包括offset、leo、hw以及ISR。
"Broker" Kafka集群包含一个或多个服务器,这种服务器被称为broker。
"Topic" 每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)
"Partition" Partition是物理上的概念,每个Topic包含一个或多个Partition.
"Producer" 负责发布消息到Kafka broker
"Consumer" 消息消费者,向Kafka broker读取消息的客户端。
"Consumer Group" 每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)。
发布/订阅消息
在讨论Apache Kafka的细节之前,对我们来说重要的是要了解发布-订阅消息传递的概念及其重要性。发布订阅消息传递是一种模式,其特征在于数据(消息)的发送者(发布者)没有专门将其定向到接收者。然而,发布者以某种方式对消息进行分类,而接收者(订阅者)订阅以接收某些类的消息。发布/订阅系统通常具有代理(broker),这是发布消息的中心点,以方便此操作
|