Kafka 简介

20220916-1cfa90fc-23fc-4f2e-b7a4-e671079c3fb9.png

Apche Kafka 是一个基于分布式流处理的软件平台。它是一个发布订阅的消息系统,使得应用,服务器,处理器可以交换数据。Kafka 最初有 Linkedin 开发,随后捐赠给 Apache 软件基金会。Apache Kafka 解决了发送方和接收方之间数据通信的问题。

Kafka 架构

1、主题

它是表示相似类型数据的通用名字或标题。在 Apache Kafka 中,一个集群中可以有多个主题。每个主题指定不同类型的消息。


20220916-2507e7f9-c8c5-4346-9453-7f5e370a4988.png
2、分区

数据或消息被划分为更小的部分,称为分区。每个分区中数据都有一个偏移量(offset)。数据以顺序方式写入。我们可以有无限多的分区,有无限多的偏移量。然而,我们不能保证信息将被写入哪个分区。

3、副本

Apache Kafka 是大数据领域的分布式软件系统。因此数据有很多份拷贝。在 Kafka 中,每一个 Broker 包含一系列数据,但是如果 Broker 或机器宕机了呢?数据就会丢失。为了防范于未然,Apache Kafka 启用了复制的特性,以避免数据的丢失,即使在 Broker 故障的情况下。要做到这一点,需要为 Broker 中的主题设置副本因子(replication factor)。

4、生产者

它们是使用生产者的 API 向集群内的主题写入 / 发布数据的应用程序。生产者可以在主题或主题内指定分区上写入数据。

5、消费者

它们是使用消费 API 从集群内的主题中 读取 / 消费数据的应用程序。消费者可以读取主题的或主题内指定分区的数据。

6、Broker

Broker 是维护和管理已发布的消息软件进程。Broker 管理消费者的偏移量,并负责 将消息传递给正确的消费者。

7、Zookeeper

zookeeper 用于监控 Kafka 集群并协调每个 Broker 。它以键值对的形式保存所有与 Kafka 集群相关的元数据信息。

Kafka 如何工作?

Kafka 是一个分布式系统,由服务器和客户端组成。通过高性能的 TCP 网络协议进行通信,并部署在任何虚拟机和云环境中。

1、服务器

Kafka 以一个或多个服务器集群的形式运行,可以跨越多个数据中心或云区域。其中一些服务器形成了存储层,称为 Broker 。其他的服务器运行 Kafka Connect,不断地导入和导出数据到流事件。

2、客户端

它们允许编写分布式应用和微服务,这些应用和微服务可以并行地,大规模地读取,写入和处理事件流,即使在网络问题或机器故障 的情况下也能以容错的方式进行。

Kafka 特性

20220916-e3c767a3-33cb-481f-97d0-6acd4d1f3ade.png
1、伸缩性

Apache Kafka 可以扩展数据生产者,数据Broker 和数据消费者。无论你是由几个数据生产者创建很大的数据集,然后发送给许多消费者组,还是以其他方式,Kafka 都能满足你的需求。

2、扩展性

Kafka 在过去的几年非常流行,也促进了大量应用程序开发与 Kafka 的集成。这使得新功能的添加变得很容易,比如说以插件集成到应用程序中。

3、容错

Kafka Streams 建立在 Kafka 内部原生集成的容错能力上。Kafka 分区是高度可用和复制的,所以当流数据被持久化到 Kafka 时,即使应用程序失败并需要重新处理,它也是可用的。Kafka Stream 中的任务利用了 Kafka 消费者客户端提供的容错能力来处理故障,如果一个任务运行在一台有故障的机器上,Kafka Stsreams 会自动在应用程序的一个剩余运行实例中重新启动该任务。

4、减少了对多种整合的需求

生产者生产的所有数据都要经过 Kafka 。因此,我们只需要创建一个 Kafka 的集成,就可以自动将每个生产者和消费者进行集成、

5、分布式系统

Apache Kafka 是个分布式架构哦,具有可扩展性。分区和复制是分布式系统下的两种能力。

6、实时处理

Kafka 近乎实时地监控所有的数据通信,以实现访问控制,检测异常,并提供安全通信。这种架构能够与没有连接的遗留系统整合,以收集传感器数据,但也确保外部系统不能访问不安全的机器。

Kafka 使用场景

20220916-fa756550-a3b5-4bcd-92ff-cb9b3fcbdd6a.png
1、消息

Kafka 有更强的吞吐量,内置分区,复制和容错功能,这使它成为处理大规模消息应用的解决方案。

2、网站活动追踪

Kafka 最初的使用场景是重建用户活动追踪管道,作为实时发布-订阅的消息流。

3、度量

Kafka 用于运维监控数据。这涉及到从分布式应用中聚合统计数据,以产生集中的运维数据。

4、日志聚合

许多人使用 Kafka 作为日志聚合解决方案的替代品。日志聚合通常收集服务器上的物理日志文件,并将它们放在一个中心位置(也行是文件服务器或HDFS)进行处理。Kafka 抽象了文件的细节,并给日志或事件数据的消息流创建了一个更简介的抽象。

5、流式处理

许多使用 Kafka 的用户在多个阶段组成的管道中处理数据,原始输入数据在 Kafka 主题中被消耗,丰富组合或转化后发给新的主题

6、事件溯源

事件溯源是一种应用程序的设计风格,将状态变化记录成一个时间序列记录。Kafka 支持日志数据的海量存储,这使得它成为该风格应用程序后端的出色选择。

Apache Kafka 应用

Linkedin

2010 年,LinkedIn 开发了 Apache Kafka 。由于 Kafka 是一个发布-订阅的消息系统,因此在 LinkedIn 的各种产品,如果 LinkedIn Today 和 LinkedIn Nesfeed 都使用它来消费消息。

Uber

Uber 使用 Kafka 作为消息总线来连接生态系统的不同部分。Kafka 帮助乘客和司机满足彼此的匹配。他从乘客的应用程序以及司机的应用程序中收集信息。然后将这些信息提供给下游的消费者。

Twitter

由于 Kafka 满足了数据复制和持久性的需求,Twitter 已经成为 Apache Kafka 的最佳应用 / 用户之一。采用Kafka 使用 Twitter 节省了高达 75% 的大量资源,很好地降低了成本。

Netflix

Netflix 在 keystone Pipeline 下使用的 Kafka。Keystone 是一个统一的收集,事件发布和路由基础设施,用于流处理和批处理。

总结

Kafka 支持低延迟的消息传递,并在机器出现故障时提供容错保证。它可以处理大量不同的消费者。Kafka 的速度非常快。可以达到 200W次 / 秒的写入速度。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容

  • 1、消息队列 简单地说,“消息队列”是在消息的传输过程中保存消息的容器。 1.1 简介 消息队列管理器在将消息从它...
    SpaceCat阅读 603评论 0 3
  • 一、kafka定义 二、kafka的优势 三、kafka的原理 四、kafka起源 一、Kafka是最初由Link...
    xupc阅读 1,274评论 0 0
  • Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。kafka 是一个高性能...
    卓三阳阅读 4,143评论 0 3
  • 1.kafka 集群的架构 Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partitio...
    本能帅阅读 258评论 0 1
  • 简介Apache Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目...
    海纳百川_spark阅读 725评论 0 2