当前位置:首页 > 数码 > Kafka-的应用场景 (kafka是做什么的)

Kafka-的应用场景 (kafka是做什么的)

admin5个月前 (05-05)数码25
Kafka 是一个分布式流处理平台,具有高吞吐量、低延迟和可扩展性。它在许多行业和应用中得到广泛应用,以下是 Kafka 一些最常见的应用场景:

1. 日志处理与分析

Kafka 是处理和分析日志数据的理想选择。它可以从各种源(如应用程序、服务器和网络设备)高效地收集日志,并为进一步分析和可视化存储这些日志。 上图显示了典型的 ELK(Elastic-Logstash-Kibana)堆栈。Kafka 有效地从每个实例收集日志流。ElasticSearch 使用来自 Kafka 的日志并为其建立索引。Kibana 在 ElasticSearch 之上提供了搜索和可视化 UI。

2. 推荐中的数据流

许多电子商务网站使用用户过去的行为和相似的用户来计算产品推荐。Kafka 在推荐系统中扮演着重要的角色,它可以传输原始点击流数据,供流处理引擎(如 Flink)处理。模型训练则使用来自数据湖的聚合数据。这使得能够持续改进每个用户的推荐的相关性。

3. 系统监控与报警

与日志分析系统类似,我们需要收集系统指标以进行监控和故障排除。区别在于指标是结构化数据,而日志是非结构化文本。指标数据发送到 Kafka 并在 Flink 中聚合。聚合数据由实时监控仪表板和警报系统使用。

4. CDC(变更数据捕获)

变更数据捕获 (CDC) 将数据库更改流式传输到其他系统以进行复制或缓存/索引更新。例如,在事务日志发送到 Kafka 并由 ElasticSearch 和辅助数据库获取。

5. 系统迁移

升级遗留服务是一个挑战,因为它涉及旧的语言、复杂的逻辑和缺乏测试。我们可以利用消息传递中间件来降低风险。 在下图中,为了升级订单服务,我们更新旧的订单服务以使用来自 Kafka 的输入并将结果写入 ORDER 主题。新订单服务使用相同的输入并将结果写入 ORDERNEW 主题。调节服务比较 ORDER 和 ORDERNEW。如果它们相同,则新服务通过测试。

6. 事件溯源

事件溯源就是捕获一系列事件中状态的变化。公司通常使用 Kafka 作为主要事件存储。如果发生任何故障、回滚或需要重建状态,您可以随时重新应用 Kafka 中的事件。

7. 消息传递

Kafka 最好和最常见的用例之一是作为消息队列。Kafka 为您提供了一个可靠且可扩展的消息队列,可以处理大量数据。我们可以将您的消息组织成主题,这意味着您将每条消息发布到一个特定主题,而另一方面,消费者将订阅一个或多个主题并消费其中的消息。 微服务之间解耦通信的最大优点是,您可以随时向这些事件添加新服务,而无需增加系统的复杂性或不必更改任何源代码。

8. 提交日志

Kafka 可以充当分布式系统的一种外部提交日志。日志有助于在节点之间复制数据,并充当故障节点恢复数据的重新同步机制。Kafka 中的日志压缩功能有助于支持这种用法。 Kafka 是一个功能强大且用途广泛的流处理平台,在许多行业和应用中得到广泛应用。它的高吞吐量、低延迟和可扩展性使其成为处理大量数据和建立可靠、可扩展的系统和服务的理想选择。 kafka是做什么的

Kafka的特性

Kafka的特性: - 高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition, consumer group 对partition进行consume操作。 - 可扩展性:kafka集群支持热扩展 - 持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失 - 容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败) - 高并发:支持数千个客户端同时读写 1.2 Kafka的使用场景: - 日志收集:一个公司可以用Kafka可以收集各种服务的log,通过kafka以统一接口服务的方式开放给各种consumer,例如hadoop、Hbase、Solr等。 - 消息系统:解耦和生产者和消费者、缓存消息等。 - 用户活动跟踪:Kafka经常被用来记录web用户或者app用户的各种活动,如浏览网页、搜索、点击等活动,这些活动信息被各个服务器发布到kafka的topic中,然后订阅者通过订阅这些topic来做实时的监控分析,或者装载到hadoop、数据仓库中做离线分析和挖掘。 - 运营指标:Kafka也经常用来记录运营监控数据。 包括收集各种分布式应用的数据,生产各种操作的集中反馈,比如报警和报告。 - 流式处理:比如spark streaming和storm

kafka原理

Kafka 是一个消息系统,原本开发自 LinkedIn,用作 LinkedIn 的 活动流数据 (Activity Stream)和 运营数据 处理管道(Pipeline)的基础。现在它已被多家公司作为多种类型的数据管道和消息系统使用。

Kafka通常用于应用中的两种广播类型:

由此可见,kafka给自身的定位并不只是一个消息系统,而是通过发布订阅消息这种机制实现了流平台。

Kafka和大多数消息系统一样,搭建好kafka集群后,生产者向特定的topic生产消息,而消费者通过订阅topic,能够准实时的拉取到该topic新消息,进行消费。如下图:

kafka主要有以下特性:

尤其是高吞吐量,是他的最大卖点。kafka之所以能够实现高吞吐量,是基于他自身优良的设计,及集群的可扩展性。

Kafka应用场景

一个Topic可以认为是一类消息,每个topic将被分成多个partition(区),每个partition在存储层面是append log文件。任何发布到此partition的消息都会被直接追加到log文件的尾部,每条消息在文件中的位置称为offset(偏移量),offset为一个long型数字,它用来唯一标记某个分区内的一条消息。kafka并没有提供其它额外的索引机制来存储offset,因为在kafka中几乎不允许对消息进行“随机读写”。

Kafka和其它消息系统有一个不一样的设计,在consumer之上加了一层group。同一个group的consumer可以并行消费同一个topic的消息,但是同group的consumer,不会重复消费。这就好比多个consumer组成了一个团队,一起干活,当然干活的速度就上来了。group中的consumer是如何配合协调的,其实和topic的分区相关联,后面我们会详细论述。

如果同一个topic需要被多次消费,可以通过设立多个consumer group来实现。每个group分别消费,互不影响。

在kafka中,一个partition中的消息只会被group中的一个consumer消费(同一时刻),每个group中consumer消息消费互相独立,我们可以认为一个group是一个订阅者。一个Topic中的每个partions只会被一个订阅者中的一个consumer消费,不过一个consumer可以同时消费多个partitions中的消息。

kafka只能保证一个partition中的消息被某个consumer消费时是顺序的。事实上,从Topic角度来说,,当有多个partitions时,消息仍不是全局有序的。

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: Kafka

“Kafka-的应用场景 (kafka是做什么的)” 的相关文章

7k-Star-b-Kafka管理平台-b-拥抱美观和功能性的开源

7k-Star-b-Kafka管理平台-b-拥抱美观和功能性的开源

简介 Kafka-UI 是一款用于管理 Apache Kafka 集群的开源 Web 界面。默认情况下,它不允许在运行时更改其配置。本文档将详细介绍 Kafka-UI 的配置机制,以及如何通过各...

为高性能消息管道优化资源-Apache-如何确定-Kafka-的大小和规模 (为高性能消息的软件)

为高性能消息管道优化资源-Apache-如何确定-Kafka-的大小和规模 (为高性能消息的软件)

调整或扩展 Kafka 以获得最佳成本和性能的第一步是了解数据流平台如何使用资源。这里给一些实用的建议。 Kafka 如何利用资源 1. CPU 一般来说,Apache Kafka...

连忙补一下-href=-面试为啥都问Kafka-a-a (妈妈连忙补充句子)

连忙补一下-href=-面试为啥都问Kafka-a-a (妈妈连忙补充句子)

大家好,我是哪吒。 Kafka简直是当今时代背景下数据管道的首选,无论你是做后端开发、还是大数据开发,对它或许都不生疏。开源软件Kafka的运行越来越宽泛。 面对Kafka的遍及和学习...

优化实时数据处置的关键-解密Kafka主题的分区战略 (优化实时数据的方法)

优化实时数据处置的关键-解密Kafka主题的分区战略 (优化实时数据的方法)

Kafka简直是当今时代背景下数据管道的首选,无论你是做后端开发、还是大数据开发,对它或者都不生疏。开源软件Kafka的运行越来越宽泛。 面对Kafka的遍及和学习热潮,哪吒想分享一下自己多...

背地的关键要素-Kafka-揭秘-惊人的吞吐量 (背地是什么意思?)

背地的关键要素-Kafka-揭秘-惊人的吞吐量 (背地是什么意思?)

在泛滥的信息两边件中,Kafka的性能和吞吐量相对是顶尖级别的,那么疑问来了,Kafka是如何做到高吞吐的。在性能优化方面,它经常使用了哪些技巧呢?上方咱们就来剖析一下。 以'批'为单位...

图解-深入浅出-全网最全-Kafka-适用场景 (深入浅出ddr)

图解-深入浅出-全网最全-Kafka-适用场景 (深入浅出ddr)

Apache Kafka 是一种分布式流处理平台,因其高吞吐量、低延迟和容错性而闻名。它在各种行业和用例中都有广泛的应用,包括消息传递、存储系统、日志聚合、网站活动跟踪和推荐系统。...

Kafka-解锁大数据时代的搜索与分析 (kafka工作原理)

Kafka-解锁大数据时代的搜索与分析 (kafka工作原理)

随着大数据时代的到来,数据湖作为一种新的数据存储和分析解决方案受到了越来越多的企业的青睐。作为一种高性能、可扩展的事件流平台,Kafka 在数据湖领域发挥着重要的作用。本文将深入探讨 Kafka...