Apache Kafka开发入门指南之2

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/21079919 Apache Kafka开发入门指南之2作者:chszs,转载需注明。
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/21079919

Apache Kafka开发入门指南之2

作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs

Apache Kafka目标是统一离线和在线处理,与Flume和Scribe相比较,Kafka在处理活动流数据方面更具优势。但是从架构的视野来看,Kafka与传统的消息系统(例如ActiveMQ或RabbitMQ)更相似一些。

注:Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量的应用。它能够从各种日志源上收集日志,存储到一个中央存储系统(可以是NFS、分布式文件系统等),以便于进行集中统计分析处理。它为日志的“分布式收集、统一处理”提供了一个可扩展的、高容错的方案。当中央存储系统的网络或者机器出现故障时,Scribe会将日志转存到本地或者另一个位置,当中央存储系统恢复后,Scribe会将转存的日志重新传输给中央存储系统。Scribe通常与Hadoop结合使用。Scribe用于向HDFS中push日志,而Hadoop通过MapReduce作业进行定期处理。

注:Flume最早是Cloudera提供的高可用、高可靠、分布式的海量日志采集、聚合和传输的日志收集系统,目前归属于Apache,是Apache基金会下的一个孵化项目。Flume支持在日志系统中定制各类数据的发送方,用于收集数据;同时Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。Flume提供了从Console(控制台)、RPC(Thrift-RPC)、Text(文件)、Tail(UNIX tail)、Syslog(syslog日志系统,支持TCP和UDP等2种模式),Exec(命令执行)等数据源上收集数据的能力。Flume采用了多Master的方式。为了保证配置数据的一致性,Flume引入了ZooKeeper,用于保存配置数据,ZooKeeper本身可保证配置数据的一致性和高可用。另外,在配置数据发生变化时,ZooKeeper可以通知Flume Master节点。Flume Master间使用Gossip协议同步数据。

不少公司使用了Kafka:

1)LinkedIn

http://www.linkedin.com

LinkedIn公司使用Apache Kafka作为活动数据的流化和运营度量。

2)DataSift

http://www.datasift.com

DataSift公司使用Apache Kafka作为监控事件的收集器以及用户消费的实时数据流的跟踪器。

3)Twitter

http://www.twitter.com

Twitter公司使用Apache Kafka作为其Storm平台的一部分。

注:Storm是一个流处理架构。

4)Foursquare

http://www.foursquare.com

Foursquare公司使用Apache Kafka处理在线之间和在线与离线之间的消息传输,把Kafka与Foursquare监控和产品系统以及基于Hadoop的离线基础设施进行集成。

5)Square

http://www.squareup.com

Square公司使用Apache Kafka作为总线,在Square的各个数据中心之间传输所有的系统事件,包括:度量、日志、自定义事件等等。在用户端,它输出到Splunk、Graphite或Esper实时警告。

二、Apache Kafka安装

Kafka是Apache的顶级项目之一,当前的最新版本为0.7.2稳定版,0.8版还是Beta版,但已经获得了很多大型公司的认可。与0.7.2版相比,Kafka 0.8版提供了很多高级特性,如下:

1)在0.8版之前,如果经纪人Broker失效,那么任何Topic内的未消费分区的数据可能会丢失。而0.8版对分区增加了复制因子,这确保了只要有一个复制集有效,那么任何未提交的消息都不会丢失。

2)早先的版本还确保了所有的生产者和消费者都是复制敏感的。默认情况下,生产者的消息发送请求会被阻塞,直到消息提交到所有活动的复制集上才会解除阻塞。但是,生产者还能被配置为提交消息到单个经纪人Broker。

3)与Kafka的生产者一样,Kafka的消费者的投票模型改为长轮询模型且会被阻塞,除非已提交的消息是有效的才会解除阻塞。

4)另外,Kafka 0.8版还配备了一套管理工具,比如集群的受控关机和领导复制选举工具等。

Apache Kafka 0.7.x版不能被0.8版所替代的主要原因是0.8版不能向后兼容。

如果要把现有的基于Kafka 0.7.x版的集群迁移到基于0.8版的Kafka集群上,Apache Kafka提供了迁移工具。迁移工具实际上担当了基于Kafka 0.7.x版的集群的消费者的角色,并在基于0.8版的Kafka集群上担当了生产者重发布消息的角色。

下面的视图说明了整个迁移:



目录
相关文章
|
1月前
|
消息中间件 安全 Kafka
Apache Kafka安全加固指南:保护你的消息传递系统
【10月更文挑战第24天】在现代企业环境中,数据的安全性和隐私保护至关重要。Apache Kafka作为一款广泛使用的分布式流处理平台,其安全性直接影响着业务的稳定性和用户数据的安全。作为一名资深的Kafka使用者,我深知加强Kafka安全性的重要性。本文将从个人角度出发,分享我在实践中积累的经验,帮助读者了解如何有效地保护Kafka消息传递系统的安全性。
85 7
|
1月前
|
消息中间件 数据挖掘 Kafka
Apache Kafka流处理实战:构建实时数据分析应用
【10月更文挑战第24天】在当今这个数据爆炸的时代,能够快速准确地处理实时数据变得尤为重要。无论是金融交易监控、网络行为分析还是物联网设备的数据收集,实时数据处理技术都是不可或缺的一部分。Apache Kafka作为一款高性能的消息队列系统,不仅支持传统的消息传递模式,还提供了强大的流处理能力,能够帮助开发者构建高效、可扩展的实时数据分析应用。
83 5
|
1月前
|
消息中间件 存储 监控
构建高可用性Apache Kafka集群:从理论到实践
【10月更文挑战第24天】随着大数据时代的到来,数据传输与处理的需求日益增长。Apache Kafka作为一个高性能的消息队列服务,因其出色的吞吐量、可扩展性和容错能力而受到广泛欢迎。然而,在构建大规模生产环境下的Kafka集群时,保证其高可用性是至关重要的。本文将从个人实践经验出发,详细介绍如何构建一个高可用性的Kafka集群,包括集群规划、节点配置以及故障恢复机制等方面。
83 4
|
19天前
|
消息中间件 Java Kafka
什么是Apache Kafka?如何将其与Spring Boot集成?
什么是Apache Kafka?如何将其与Spring Boot集成?
52 5
|
22天前
|
消息中间件 Java Kafka
Spring Boot 与 Apache Kafka 集成详解:构建高效消息驱动应用
Spring Boot 与 Apache Kafka 集成详解:构建高效消息驱动应用
34 1
|
1月前
|
消息中间件 Ubuntu Java
Ubuntu系统上安装Apache Kafka
Ubuntu系统上安装Apache Kafka
|
1月前
|
消息中间件 监控 Kafka
Apache Kafka 成为处理实时数据流的关键组件。Kafka Manager 提供了一个简洁的 Web 界面
随着大数据技术的发展,Apache Kafka 成为处理实时数据流的关键组件。Kafka Manager 提供了一个简洁的 Web 界面,方便管理和监控 Kafka 集群。本文详细介绍了 Kafka Manager 的部署步骤和基本使用方法,包括配置文件的修改、启动命令、API 示例代码等,帮助你快速上手并有效管理 Kafka 集群。
47 0
|
2月前
|
消息中间件 存储 运维
为什么说Kafka还不是完美的实时数据通道
【10月更文挑战第19天】Kafka 虽然作为数据通道被广泛应用,但在实时性、数据一致性、性能及管理方面存在局限。数据延迟受消息堆积和分区再平衡影响;数据一致性难以达到恰好一次;性能瓶颈在于网络和磁盘I/O;管理复杂性涉及集群配置与版本升级。
103 1
|
2月前
|
消息中间件 Java Kafka
Flink-04 Flink Java 3分钟上手 FlinkKafkaConsumer消费Kafka数据 进行计算SingleOutputStreamOperatorDataStreamSource
Flink-04 Flink Java 3分钟上手 FlinkKafkaConsumer消费Kafka数据 进行计算SingleOutputStreamOperatorDataStreamSource
54 1
|
4月前
|
消息中间件 Java Kafka
Kafka不重复消费的终极秘籍!解锁幂等性、偏移量、去重神器,让你的数据流稳如老狗,告别数据混乱时代!
【8月更文挑战第24天】Apache Kafka作为一款领先的分布式流处理平台,凭借其卓越的高吞吐量与低延迟特性,在大数据处理领域中占据重要地位。然而,在利用Kafka进行数据处理时,如何有效避免重复消费成为众多开发者关注的焦点。本文深入探讨了Kafka中可能出现重复消费的原因,并提出了四种实用的解决方案:利用消息偏移量手动控制消费进度;启用幂等性生产者确保消息不被重复发送;在消费者端实施去重机制;以及借助Kafka的事务支持实现精确的一次性处理。通过这些方法,开发者可根据不同的应用场景灵活选择最适合的策略,从而保障数据处理的准确性和一致性。
338 9

推荐镜像

更多