Apache Kafka开发入门指南之2

标签: apache kafka 开发 | 发表时间:2014-03-12 19:28 | 作者:chszs
出处:http://blog.csdn.net

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集群上担当了生产者重发布消息的角色。

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



作者:chszs 发表于2014-3-12 11:28:42 原文链接
阅读:107 评论:0 查看评论

相关 [apache kafka 开发] 推荐:

Apache Kafka开发入门指南之2

- - CSDN博客云计算推荐文章
Apache Kafka开发入门指南之2. 作者:chszs,转载需注明. 博客主页: http://blog.csdn.net/chszs. Apache Kafka目标是统一离线和在线处理,与Flume和Scribe相比较,Kafka在处理活动流数据方面更具优势. 但是从架构的视野来看,Kafka与传统的消息系统(例如ActiveMQ或RabbitMQ)更相似一些.

apache kafka消息服务

- - CSDN博客架构设计推荐文章
apache kafka中国社区QQ群:162272557. apache kafka参考. 消息生产者生产消息发送到queue中,然后消息消费者从queue中取出并且消费消息. 消息被消费以后,queue中不再有存储,所以消息消费者不可能消费到已经被消费的消息. Queue支持存在多个消费者,但是对一个消息而言,只会有一个消费者可以消费.

[译] 每个 Apache Kafka 开发者都应该知道的 5 件事

- - IT瘾-dev
Apache Kafka 是一个开源流处理平台,如今有超过30%的财富500强企业使用该平台. Kafka 有很多特性使其成为事件流平台(event streaming platform)的事实上的标准. 在这篇博文中,我将介绍每个 Kafka 开发者都应该知道的五件事,这样在使用 Kafka 就可以避免很多问题.

Apache kafka原理与特性(转)

- - 互联网 - ITeye博客
 转自:http://shift-alt-ctrl.iteye.com/blog/1930345. 前言: kafka是一个轻量级的/分布式的/具备replication能力的日志采集组件,通常被集成到应用系统中,收集"用户行为日志"等,并可以使用各种消费终端(consumer)将消息转存到HDFS等其他结构化数据存储系统中.因为日志消息通常为文本数据,尺寸较小,且对实时性以及数据可靠性要求不严格,但是需要日志存储端具备较高的数据吞吐能力,这种"宽松"的设计要求,非常适合使用kafka. .

实用 | 从Apache Kafka到Apache Spark安全读取数据

- - IT瘾-bigdata
随着在CDH平台上物联网(IoT)使用案例的不断增加,针对这些工作负载的安全性显得至关重要. 本篇博文对如何以安全的方式在Spark中使用来自Kafka的数据,以及针对物联网(IoT)使用案例的两个关键组件进行了说明. Cloudera Distribution of Apache Kafka 2.0.0版本(基于Apache Kafka 0.9.0)引入了一种新型的Kafka消费者API,可以允许消费者从安全的Kafka集群中读取数据.

Oryx 2: Lambda architecture on Apache Spark, Apache Kafka for real-time large scale machine learning

- -

kafka开发实例

- - 互联网 - ITeye博客
//启动zookeeper server (用&是为了能退出命令行):. //启动kafka server: . 已有 0 人发表留言,猛击->> 这里<<-参与讨论. —软件人才免语言低担保 赴美带薪读研.

Apache Kafka:下一代分布式消息系统

- - zzm
Apache Kafka是分布式发布-订阅消息系统. 它最初由LinkedIn公司开发,之后成为Apache项目的一部分. Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务. Apache Kafka与传统消息系统相比,有以下不同:. 它被设计为一个分布式系统,易于向外扩展;.

【译】调优Apache Kafka集群 - huxihx - 博客园

- -
  今天带来一篇译文“调优Apache Kafka集群”,里面有一些观点并无太多新颖之处,但总结得还算详细. 该文从四个不同的目标出发给出了各自不同的参数配置,值得大家一读~ 原文地址请参考:https://www.confluent.io/blog/optimizing-apache-kafka-deployment/.

大规模使用 Apache Kafka 的20个最佳实践

- - 开源软件 - ITeye博客
 Apache Kafka是一款流行的分布式数据流平台,它已经广泛地被诸如New Relic(数据智能平台)、Uber、Square(移动支付公司)等大型公司用来构建可扩展的、高吞吐量的、且高可靠的实时数据流系统. 例如,在New Relic的生产环境中,Kafka群集每秒能够处理超过1500万条消息,而且其数据聚合率接近1 Tbps.