页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

目录

面板
borderColor#00FFFF
borderStyledashed

原文链接 : httphttps://kafka.apache.org/0101/documentation.html(修改该链接为官网对应的链接)documentation/#uses

译文链接 : http://cwiki.apachecn.org/pages/viewpage.action?pageId=4882492(修改该链接为 ApacheCN 对应的译文链接) 1.2 Use Cases(使用案例)

贡献者 : @您的名字, 程威ApacheCNApache中文网

这里列举了一些Apache Kafka™ 流行的使用案例。 有关这些领域的概述,请参阅此博文

消息处理(Messaging)

Kafka可以很好替代传统的消息代理。消息代理有很多应用场景(处理数据和数据生产者解耦,缓存还没被处理的数据,等等)。与大部分消息系统相比,Kafka有更好的吞吐量,分区构建,备份,容错。使其成为大规模消息处理应用程序的良好解决方案。

在我们的经验中,消息传递的使用通常是相对低吞吐量的.但可能需要较低的端到端延迟,并且通常取决于Kafka提供的稳定的持久性保证。

在这个领域,Kafka可以和传统的消息系统相媲美,比如 **ActiveMQ** or RabbitMQ.

网站活动跟踪(Website Activity Tracking)

最初使用Kafka是为了去重新构建一个用户行为轨迹管道,作为实时发布订阅数据集。这就意味着网页活动(页面视图,搜索,或者其他用户行为)被发布到主要的 topics,一个行为类型对应一个topic。这些topic可以在很多应用场景中被订阅,包括实时处理,实时监控,加载数据到Hadoop或者用来做离线处理和报告的离线数据仓库系统。

事件轨迹经常有很高的流量,因为每个用户页面视图都会生成许多事件信息.

度量(Metrics)

Kafka经常被用来处理操作性的监控数据。这涉及到聚合来自分布式应用程序的统计数据,然后生产操作性数据.

日志收集(Log Aggregation)

许多用户用Kafka来代替日志聚合计划。日志聚合通常从服务器收集物理日志文件,将他们放进一个中央仓库(一个文件服务器或者hdfs)来处理.Kafka 抽象出文件的细节,并将日志或事件数据作为消息流清晰地抽象出来,保证了低延迟的处理,支持多数据源和分布式数据消费。与以日志为中心的系统(如Scribe或Flume)相比,Kafka提供同样出色的性能,因为replication 稳定性得到保证,,端到端延迟更低。

流处理(Stream Processing)

Kafka的许多用户处理管道中的数据,由多个阶段组成。原始数据从Kafka topic 消费,然后聚合,丰富,或者传输到其他新的topic 中进一步的消费,或者后续处理。例如,一个用来推荐新闻文章的管道可能爬取文章内容从RSS数据中,然后消费到 ‘articles’ topic。然后可能规范化或删除重复数据,并将清理后的文章内容发布到新的topic;最后处理阶段可能是将article 推荐给用户。这样的处理流水线基于各个topic 创建了一个实时数据流程的图像。从0.10.0.0版本 开始,Apache Kafka 提供了一个名为Kafka Streams的轻量级但功能强大的流处理库,可执行如上所述的数据处理。除了Kafka Streams之外,可替代的开源流处理工具还包括Apache Storm 和 Apache Samza

事件追溯(Event Sourcing)

事件追溯是一种应用设计风格,应用的状态变更会被记录为按时间排序的有序序列。Kafka 支持非常大的日志数据存储,这使得Kafka可以很好的作为该类应用程序的后端。

提交日志(Commit Log)

Kafka 可以作为分布式系统的一种外部提交日志的渠道。提交的日志有助于在分布式节点之间备份数据,当某个服务器节点失败后,可以重新同步数据。Kafka的**日志压缩**功能能有助于支持此用法.在这个用法中,Kafka类似于Apache BookKeeper项目.