kafka官方文档-应用案例

1.2 应用案例

下面介绍一些kafka的典型应用案例。
消息
kafka可以很好的取代传统的消息中间件。很多时候我们需要使用消息中间件(前后台数据解耦,消息缓存缓冲等)。与大多数消息系统相比,kafka具有更好的吞吐量、内置分区、复制和容错机制,这使得kafka成为大型消息处理系统的良好的解决方案。
根据我们的经验,消息的使用通常具有相对低的吞吐量,但可能需要端到端的低延迟,以及高可靠性的保证,这种低延迟和可靠性的保证正好是kafka所能提供的。
在这方面kafka完全和传统的消息中间件相媲美,例如ActiveMQ或RabbitMQ。
网站活动跟踪
kafka最初的使用案例是能够重建用户活动跟踪管道使之成为一组实时发布-订阅的数据源。这意味着网站活动(网页浏览、搜索、或者其他操作)被作为一个主题(topic)被发布。每一个活动对应一个主题。这些主题可以被一系列的应用订阅,包括实时处理、实时监测、加载到Hadoop系统或离线数仓系统进行离线处理和报告。
活动追踪通常会产生巨大的数据量。因为每个用户页面都会产生很多活动信息。
测量
kafka通常用于操作监控数据,包括从分布式应用程序收集统计数据,生成数据源。
日志聚合
很多人使用kafka作为日志聚合的解决方案。日志聚合通常从服务器上收集物理日志文件,并将它们集中存放(可能是文件服务器或者HDFS)。kafka将文件的细节抽象出来,并将日志或事件作为简洁的消息进行传输。这实现了低延迟处理,并且可以容易的支持多数据源与分布式数据的消费。
与Scribe或Flume这样的日志处理系统相比,kafka使用端到端的低延迟同样具有良好的性能,同时通过副本复制提供了更强的持久性保证。
流处理
很多用户使用kafka对数据进行多阶段处理,原始数据从kafka的主题中被消费,然后对数据进行聚合、富集或转换,再发布到新的主题中进行下一步处理。例如,一条处理新闻发布的管道可以从RSS数据源抓取文章内容并将其发布到“文章”主题上。接下来对“文章”主题上的新闻内容进行规范化处理或者删除,并将处理后的文章内容再发布到一个新的主题上。最后消费者可能尝试向用户推荐该内容。这样的数据流处理管道基于各个主题创建了实时数据的流程图。从0.10.0.0版本开始,kafka提供了一个轻量级但强大的流处理库(kafka streams)可以用来操作上述的数据处理流程。除了Kafka Streams之外,一些其他的开源项目也提供同样的功能,例如Apache Storm和Apache Samza。
事件源(Event Sourcing)
Event Sourcing是一种应用程序的设计风格,是按照时间顺序的记录状态变化的序列。kafka强大的日志存储能力使他成为构建这类应用程序的很好的选择。
日志提交
kafka可以作为分布式系统的外部日志提交服务。日志有助于点对点的复制,同时作为一种数据同步机制用来恢复故障点的数据。kafka的日志压缩功能(log compaction)有助于实现这种用法。这种用法类似于Apache BookKeeper项目。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值