本人英文水平非常有限,看不懂勿喷。
1、入门
1.1介绍
kafka是一个分布式流处理平台。
.......
kafka有四种api:
生产者API允许一个应用给kafka topics发布一些流记录。
消费者API:允许一个应用订阅一些topics,处理流记录。
流API:允许一个应用成为流处理器,消费一些topics的输入流,生产output topics的输出流,有效转换输入和输出。
连接API:允许构建运行可重复利用的生产者和消费者,吧kafka topic连接到可用应用和数据系统。
例如,一个关联关系型数据库的连接器可以捕获所有改变到表里。
.......
1.2用户案例
消息传送
kafka可以作为传统消息代理系统的替代方案。消息代理过去使用有很多原因例如解耦处理数据生产者,缓存未处理消息等。
对比很多其他消息系统,kafka有更好的吞吐量、内置分区、同步、容错性,为更大规模消息处理应用提供解决方案。
在我们经验中消息系统常被用作比较低吞吐量,但是可能要求低的端对端延迟这就经常依赖于kafka提供的强大的可靠性保证。
在这个领域kafak堪比传统消息系统例如activeMQ/RabbitMQ
web网站活性跟踪
kafka原始使用案例是能重构活性跟踪作为实时发布-订阅信息流。这意味着动态网站(网页浏览、搜索或用户进行的其他动作)可以发布到中心topics用一个活动类型。这些信息流是可以订阅的作为一系列用例,包括实时处理、实时监控和加载到hadoop或者离线数据存入系统仓库来历先处理和报表。
活性跟踪经常和用户网页浏览一样高容量。
度量
kafka经常用作动态监控数据。包括把分布式应用统计聚合成操作数据的中心信息流
日志集合
很多人使用kafka作为日志集合的替代方案。日志集合通常收集到静态服务器的日志文件,把他们放在中心区域(一个服务器文件或HDFS)来处理。kafka把文件详情抽象出来并且把日志或事件数据作为一个消息流。这允许处理低延时,而且更容易支持多种数据源和分布式数据消费。在对比日志中心系统像Scribe或者Flume,kafka同样有好的表现,更强的耐用性因为同步,更低的端对端延迟。
流处理
很多时候kafka用作处理多阶段通道,把输入数据给kafka topics处理,然后进行汇总,丰富或者其他转换成新的topics来为将来消费或者或许处理。例如,一个推荐新闻文章的处理通道可能从RSS信息流中抓取内容然后发布成一篇文章;深加工可能标准化或者复制这个内容然后发布清洗过的文章内容成新文章。最后一步可能尝试推荐内容给读者。像处理通道创建实时数据图表作为个别topics。0.10版本之后,轻量级但是强大的流处理库叫kafka streams是可用的在apache kafka去执行上面描述的数据处理。除了kafka streams,供选择的还有开源刘处理工具包括apache storm和apache samza。
事件驱动
事件驱动是应用设计的一种方式,状态改变是笨拙的作为时间顺序的记录。kafka支持非常大的日志数据存储,使它成为杰出的后台应用
提交日志
kafka能作为分布式系统的一种外部日志提交。这个日志帮助在节点之间复制,充当失败节点的重新同步机制,来存贮他们的数据。日志压缩特性支持kafka实现这个用法。kafka这样用和Apache BookKeeper项目类似。
本人英文水平非常有限,看不懂勿喷。