当前位置:首页 > 科技  > 软件

Kafka六大使用场景以及核心概念,你知道几个?

来源: 责编: 时间:2024-05-16 09:10:26 293观看
导读1. 为什么介绍Kafka1.高吞吐量:单机每秒处理十万级的消息量。即使存储了许多TB的消息,它也保持稳定的性能。2.高性能:单节点支持上千个客户端,并保证零停机和零数据丢失。利用Linux的页缓存顺序读,顺序写零拷贝3.持久化数

1. 为什么介绍Kafka

1.高吞吐量:单机每秒处理十万级的消息量。即使存储了许多TB的消息,它也保持稳定的性能。a2W28资讯网——每日最新资讯28at.com

2.高性能:单节点支持上千个客户端,并保证零停机和零数据丢失。a2W28资讯网——每日最新资讯28at.com

  • 利用Linux的页缓存
  • 顺序读,顺序写
  • 零拷贝

3.持久化数据存储:将消息持久化到磁盘。通过将数据持久化到硬盘以及replication防止数据丢失。a2W28资讯网——每日最新资讯28at.com

4.分布式系统: 易于向外扩展。所有的Producer、Broker和Consumer都会有多个,均为分布式的。无需停机即可扩展机器。多个Producer、Consumer可能是不同的应用。a2W28资讯网——每日最新资讯28at.com

5.可靠性: Kafka是分布式,分区,复制和容错的。a2W28资讯网——每日最新资讯28at.com

6.客户端状态维护:消息被处理的状态是在Consumer端维护,而不是由server端维护。当失败时能自动平衡。a2W28资讯网——每日最新资讯28at.com

7.支持online和offline的场景。a2W28资讯网——每日最新资讯28at.com

8.支持多种客户端语言。Kafka支持Java、.NET、PHP、Python等多种语言。a2W28资讯网——每日最新资讯28at.com

2. Kafka应用场景

2.1. 消息队列

Kafka 最常见的应用场景就是作为消息队列。 Kafka 提供了一个可靠且可扩展的消息队列,可以处理大量数据。a2W28资讯网——每日最新资讯28at.com

Kafka 可以实现不同系统间的解耦和异步通信,如订单系统、支付系统、库存系统等。在这个基础上 Kafka 还可以缓存消息,提高系统的可靠性和可用性,并且可以支持多种消费模式,如点对点或发布订阅。a2W28资讯网——每日最新资讯28at.com

2.2. 日志处理与分析(最常用的场景)

公司可以用Kafka可以收集各种服务的Log,典型就是 ELK(Elastic-Logstash-Kibana)。Kafka 有效地从每个实例收集日志流。a2W28资讯网——每日最新资讯28at.com

图片图片a2W28资讯网——每日最新资讯28at.com

2.3. 推荐数据流

流式处理是 Kafka 在大数据领域的重要应用场景之一,其与流处理框架(如Spark Streaming、Storm、Flink等)框架进行集成。主要内容包括:a2W28资讯网——每日最新资讯28at.com

Kafka作为流式处理平台的数据源或数据输出:Kafka可以作为流数据的中介,将实时数据发送到Kafka中,同时也可以从Kafka中读取数据进行处理和分析。 推荐系统的工作流程:以淘宝、京东等线上商城网站的推荐系统为例,描述了推荐系统的工作流程。主要包括:a2W28资讯网——每日最新资讯28at.com

  • 将用户的点击流数据发送到Kafka中。
  • 使用Flink等流处理框架读取Kafka中的流数据,进行实时聚合处理。
  • 机器学习算法使用来自数据湖的聚合数据进行训练,同时算法工程师也会对推荐模型进行调整。
  • 推荐系统持续改进对每个用户的推荐相关性。

图片图片a2W28资讯网——每日最新资讯28at.com

2.4. 系统监控与报警

与日志分析系统类似,我们需要收集系统指标以进行监控和故障排除。不同之处在于,指标是结构化数据,而日志是非结构化文本。指标数据被发送到 Kafka 中,并在 Flink 中进行聚合。下图展示了常见监控报警系统的工作流程:a2W28资讯网——每日最新资讯28at.com

  • 采集器读取购物车指标发送到 Kafka 中
  • Flink 读取 Kafka 中的指标数据进行聚合处理
  • 实时监控系统和报警系统读取聚合数据作展示以及报警处理

图片图片a2W28资讯网——每日最新资讯28at.com

2.5. CDC(数据变更捕获)

CDC(Change data capture) 将数据库更改流式传输到其他系统,以便进行复制或缓存/索引更新。例如,在下图中,事务日志被发送到 Kafka,并由 ElasticSearch、Redis 和辅助数据库引入。a2W28资讯网——每日最新资讯28at.com

图片图片a2W28资讯网——每日最新资讯28at.com

2.6. 系统迁移

Kafka 可以用来作为老系统升级到新系统过程中的消息传递中间件(Kafka),以此来降低迁移风险。 在下图中,为了升级下图中的订单服务,我们更新了旧版订单服务,以使用 Kafka 的输入并将结果写入 ORDER 主题。新的订单服务使用相同的输入,并将结果写入 ORDERNEW 主题,对帐服务比较 ORDER 和 ORDERNEW。如果它们相同,则新服务通过测试。a2W28资讯网——每日最新资讯28at.com

图片图片a2W28资讯网——每日最新资讯28at.com

3. Kafka核心概念

3.1. 生产者(Producer)

生产者: 创建消息,将消息发布到Kafka的topic中。broker接收到生产者发送的消息后,broker将该消息追加到当前用于追加数据的 segment 文件中 一般情况下,一个消息会被发布到一个特定的主题上。a2W28资讯网——每日最新资讯28at.com

  • 默认情况下通过轮询把消息均衡地分布到主题的所有分区上。
  • 在某些情况下,生产者会把消息直接写到指定的分区。这通常是通过消息键和分区器来实现的,分区器为键生成一个散列值,并将其映射到指定的分区上。这样可以保证包含同一个键的消息会被写到同一个分区上。
  • 生产者也可以使用自定义的分区器,根据不同的业务规则将消息映射到分区。

3.2. 消费者(Consumer)

消费者读取消息。a2W28资讯网——每日最新资讯28at.com

  • 消费者订阅一个或多个主题,并按照消息生成的顺序读取它们。
  • 消费者通过检查消息的偏移量来区分已经读取过的消息。偏移量是另一种元数据,它是一个不断递增的整数值,在创建消息时,Kafka 会把它添加到消息里。在给定的分区里,每个消息的偏移量都是唯一的。消费者把每个分区最后读取的消息偏移量保存在Zookeeper 或Kafka上,如果消费者关闭或重启,它的读取状态不会丢失。
  • 消费者是消费组的一部分。群组保证每个分区只能被一个消费者使用。
  • 如果一个消费者失效,消费组里的其他消费者可以接管失效消费者的工作,再平衡,分区重新分配。

3.3.  Broker

一个独立的Kafka 服务器被称为broker。a2W28资讯网——每日最新资讯28at.com

broker 为消费者提供服务,对读取分区的请求作出响应,返回已经提交到磁盘上的消息。a2W28资讯网——每日最新资讯28at.com

  • 如果某topic有N个partition,集群有N个broker,那么每个broker存储该topic的一个partition。
  • 如果某topic有N个partition,集群有(N+M)个broker,那么其中有N个broker存储该topic的一个partition,剩下的M个broker不存储该topic的partition数据。
  • 如果某topic有N个partition,集群中broker数目少于N个,那么一个broker存储该topic的一个或多个partition。在实际生产环境中,尽量避免这种情况的发生,这种情况容易导致Kafka集群数据不均衡。

broker 是集群的组成部分。每个集群都有一个broker 同时充当了集群控制器的角色(自动从集群的活跃成员中选举出来)控制器负责管理工作,包括将分区分配给broker 和监控broker 在集群中,一个分区从属于一个broker,该broker 被称为分区的首领。a2W28资讯网——每日最新资讯28at.com

图片图片a2W28资讯网——每日最新资讯28at.com

3.4. Topic

每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。a2W28资讯网——每日最新资讯28at.com

物理上不同Topic的消息分开存储。a2W28资讯网——每日最新资讯28at.com

Topic就好比数据库的表,尤其是分库分表之后的逻辑表。a2W28资讯网——每日最新资讯28at.com

3.5. 分区(Partition)

  • Topic可以被分为若干个分区,一个分区就是一个提交日志
  • 消息以追加方式写入分区,然后以先入先出的顺序读取
  • 无法在整个主题范围内保证消息的顺序,但可以保证消息在单个分区内的顺序
  • Kafka 通过分区来实现数据冗余和伸缩性
  • 在需要严格保证消息的消费顺序的场景下,需要将partition数目设为1

图片图片a2W28资讯网——每日最新资讯28at.com

a2W28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-88393-0.htmlKafka六大使用场景以及核心概念,你知道几个?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 一文彻底搞明白迭代器模式

下一篇: 什么,你的EasyExcel导出一万条数据就OOM了?

标签:
  • 热门焦点
  • 6月iOS设备好评榜:第一蝉联榜首近一年

    作为安兔兔各种榜单里变化最小的那个,2023年6月的iOS好评榜和上个月相比没有任何排名上的变化,仅仅是部分设备好评率的下降,长年累月的用户评价和逐渐退出市场的老款机器让这
  • 5月iOS设备好评榜:iPhone 14仅排第43?

    来到新的一月,安兔兔的各个榜单又重新汇总了数据,像安卓阵营的榜单都有着比较大的变动,不过iOS由于设备的更新换代并没有那么快,所以相对来说变化并不大,特别是iOS好评榜,老款设
  • 每天一道面试题-CPU伪共享

    前言:了不起:又到了每天一到面试题的时候了!学弟,最近学习的怎么样啊 了不起学弟:最近学习的还不错,每天都在学习,每天都在进步! 了不起:那你最近学习的什么呢? 了不起学弟:最近在学习C
  • 得物宠物生意「狂飙」,发力“它经济”

    作者|花花小萌主近日,得物宣布正式上线宠物鉴别,通过得物App内的“在线鉴别”,可找到鉴别宠物的选项。通过上传自家宠物的部位细节,就能收获拥有专业资质认证的得物鉴
  • 微博大门常打开,迎接海外画师漂洋东渡

    作者:互联网那些事“起猛了,我能看得懂日语了”。“为什么日本人说话我能听懂?”“中文不像中文,日语不像日语,但是我竟然看懂了”…&hell
  • 三星Galaxy Z Fold5今日亮相:厚度缩减但仍略显厚重

    据官方此前宣布,三星将于7月26日也就是今天在韩国首尔举办Unpacked活动,届时将带来带来包括Galaxy Buds 3、Galaxy Watch 6、Galaxy Tab S9、Galaxy
  • Android 14发布:首批适配机型公布

    5月11日消息,谷歌在今天凌晨举行了I/O大会,本次发布会谷歌带来了自家的AI语言模型PaLM 2、谷歌Pixel Fold折叠屏、谷歌Pixel 7a手机,同时发布了Androi
  • 英特尔Xe HPG游戏显卡:拥有512EU,单风扇版本

    据10 月 30 日外媒 TheVerge 消息报道,英特尔 Xe HPG Arc Alchemist 的正面实被曝光,不仅拥有 512 EU 版显卡,还拥有 128EU 的单风扇版本。另外,这款显卡 PCB
  • 北京:科技教育体验基地开始登记

      北京“科技馆之城”科技教育体验基地登记和认证工作日前启动。首批北京科技教育体验基地拟于2023年全国科普日期间挂牌,后续还将开展常态化登记。  北京科技教育体验基
Top