文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-11-29 22:26

关注

高性能:单节点支持上千个客户端,并保证零停机和零数据丢失。

持久化数据存储:将消息持久化到磁盘。通过将数据持久化到硬盘以及replication防止数据丢失。

分布式系统: 易于向外扩展。所有的Producer、Broker和Consumer都会有多个,均为分布式的。无需停机即可扩展机器。多个Producer、Consumer可能是不同的应用。

可靠性: Kafka是分布式,分区,复制和容错的。

客户端状态维护:消息被处理的状态是在Consumer端维护,而不是由server端维护。当失败时能自动平衡。

支持online和offline的场景。

支持多种客户端语言。Kafka支持Java、.NET、PHP、Python等多种语言。

2. Kafka应用场景

2.1. 消息队列

Kafka 最常见的应用场景就是作为消息队列。 Kafka 提供了一个可靠且可扩展的消息队列,可以处理大量数据。

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

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

公司可以用Kafka可以收集各种服务的Log,典型就是 ELK(Elastic-Logstash-Kibana)。Kafka 有效地从每个实例收集日志流。

图片

2.3. 推荐数据流

流式处理是 Kafka 在大数据领域的重要应用场景之一,其与流处理框架(如Spark Streaming、Storm、Flink等)框架进行集成。主要内容包括:

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

图片

2.4. 系统监控与报警

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

图片

2.5. CDC(数据变更捕获)

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

图片

2.6. 系统迁移

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

图片

3. Kafka核心概念

3.1. 生产者(Producer)

生产者: 创建消息,将消息发布到Kafka的topic中。broker接收到生产者发送的消息后,broker将该消息追加到当前用于追加数据的 segment 文件中 一般情况下,一个消息会被发布到一个特定的主题上。

3.2. 消费者(Consumer)

消费者读取消息。

3.3.  Broker

一个独立的Kafka 服务器被称为broker。

broker 为消费者提供服务,对读取分区的请求作出响应,返回已经提交到磁盘上的消息。

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

图片

3.4. Topic

每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。

物理上不同Topic的消息分开存储。

Topic就好比数据库的表,尤其是分库分表之后的逻辑表。

3.5. 分区(Partition)

图片

来源:springboot葵花宝典内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯