Apache Kafka

来自开放百科 - 灰狐
(版本间的差异)
跳转到: 导航, 搜索
(链接)
 
(未显示1个用户的66个中间版本)
第1行: 第1行:
Kafka 是一个高吞吐量的分布式消息系统,使用 [[Scala]] 开发,被用于 [[LinkedIn]]
+
Kafka 是一个高吞吐量的分布式消息系统,使用 [[Java]] 和 [[Scala]] 开发,早期由 [[LinkedIn]] 开发和内部使用。
 +
 
 +
==简介==
 +
[http://www.infoq.com/cn/news/2017/10/Kafka-not-just-messag-system Kafka不只是个消息系统]
  
 
Kafka 类似且堪比 Facebook [[Scribe]] 和 Cloudera [[Flume]] 系统。  
 
Kafka 类似且堪比 Facebook [[Scribe]] 和 Cloudera [[Flume]] 系统。  
  
 
淘宝开源了分布式消息中间件[[Memorphosis]]项目,它是Kafka的Java版本,针对淘宝内部应用做了定制和优化。
 
淘宝开源了分布式消息中间件[[Memorphosis]]项目,它是Kafka的Java版本,针对淘宝内部应用做了定制和优化。
 +
 +
==功能==
 +
Kafka 使用 [[Apache Avro|Avro]] 作为消息序列化框架,每天能高效处理数十亿级别的度量指标和用户活动跟踪信息。Kafka 使用 [[Apache ZooKeeper|ZooKeeper]] 保存集群的元数据信息和消费者信息。
 +
 +
Kafka并非传统意义上的消息队列,它与[[RabbitMQ]]等消息系统并不一样。它更像是一个分布式的文件系统或数据库。Kafka与传统消息系统之间有三个关键区别:
 +
 +
*Kafka持久化日志,这些日志可以被重复读取和无限期保留;
 +
*Kafka是一个分布式系统:它以集群的方式运行,可以灵活伸缩,在内部通过复制数据提升容错能力和高可用性;
 +
*Kafka支持实时的流式处理。
 +
 +
以上三点足以将Kafka与传统的消息队列区别开,我们甚至可以把它看成是流式处理平台。
 +
 +
Kafka的解耦能力以及在安全和效率方面的可靠性,使它成为构建数据管道的最佳选择。常见的两种应用场景:
 +
*把Kafka作为数据管道两个端点之一,如,把Kafka里的数据移动到S3上,或把[[MongoDB]]里的数据移动到Kafka里;
 +
*把Kafka作为数据管道两个端点的中间媒介,如,为了把Twitter的数据移动到[[Elasticsearch]]上,需要先把数据移动到Kafka里,再将它们从Kafka移动到Elasticsearch上。
 +
 +
==新闻==
 +
*[http://www.infoq.com/cn/news/2017/11/Kafka-release-1.0.0 Kafka迎来1.0.0版本,正式告别四位数版本号] (2017.11)
 +
 +
==指南==
 +
tar -xzf kafka_2.11-0.9.0.0.tgz
 +
cd kafka_2.11-0.9.0.0
 +
server.properties
 +
port = 9092
 +
advertised.host.name = localhost
 +
bin/zookeeper-server-start.sh config/zookeeper.properties
 +
bin/kafka-server-start.sh config/server.properties
 +
创建一个topic
 +
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
 +
bin/kafka-topics.sh --list --zookeeper localhost:2181
 +
发送一些消息
 +
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
 +
This is a message
 +
This is another message
 +
启动一个消费者consumer
 +
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
 +
[https://kafka.apache.org/documentation.html#quickstart 更多细节>>>]
 +
 +
==分发版==
 +
*[http://confluent.io/product/ Confluent Platform]
 +
*[http://hortonworks.com/apache/kafka/ Hortonworks Kafka]
 +
*[https://developer.ibm.com/messaging/message-hub/ IBM Message Hub] Apache Kafka as a Service
 +
 +
==项目==
 +
[[Kafka ecosystem]]
 +
 +
===管理控制台===
 +
*[[Kafka Manager]]
 +
*[https://github.com/airbnb/kafkat kafkat]
 +
*[https://zh.hortonworks.com/products/dataplane/streams-messaging-manager/ Hortonworks Streams Messaging Manager (SMM)]
 +
*[https://github.com/claudemamo/kafka-web-console Kafka Web Console] 此项目已不再更新,请访问 Kafka Manager
 +
git clone https://github.com/claudemamo/kafka-web-console
 +
cd kafka-web-console
 +
sbt
 +
> run
 +
http://localhost:9000
 +
*[https://github.com/quantifind/KafkaOffsetMonitor Kafka Offset Monitor]
 +
*[https://github.com/keenlabs/capillary Capillary: Storm Spout + Kafka State Inspector]
 +
 +
===流处理===
 +
*[http://docs.confluent.io/2.1.0-alpha1/streams/index.html Kafka Streams]
 +
*[[Apache Samza]]
 +
*[https://github.com/HolmesNL/kafka-spout Storm Kafka spout]
 +
*[https://github.com/miguno/kafka-storm-starter kafka-storm-starter]
 +
*[[Apache Flink]]
 +
*[[Apache Spark]] [https://spark.apache.org/streaming/ Streaming]
 +
*[[Apache Apex]]
 +
 +
===集成Hodoop===
 +
*[http://docs.confluent.io/2.0.0/connect/connect-hdfs/docs/index.html Kafka HDFS Connector]
 +
 +
===搜索与查询===
 +
*[https://github.com/reachkrishnaraj/kafka-elasticsearch-standalone-consumer kafka-elasticsearch-standalone-consumer]
 +
*[https://prestodb.io/docs/current/connector/kafka.html Presto Kafka Connector]
 +
*[https://github.com/pinterest/secor Secor is a service persisting Kafka logs to Amazon S3, Google Cloud Storage and Openstack Swift]
 +
 +
===日志与监控===
 +
*[[Prometheus]] [https://github.com/danielqsj/kafka_exporter Kafka exporter]
 +
*[https://github.com/otoolep/syslog-gollector syslog-gollector] [[Go]]语言开发.
 +
*[https://github.com/araddon/loges Logging Utility & Daemon]
 +
*[https://github.com/Qihoo360/logkafka/ logkafka: Apache Kafka的日志收集代理] 奇虎360开发
 +
*[https://github.com/mozilla-metrics/bagheera Mozilla Metrics Service]
 +
*[https://github.com/stealthly/metrics-kafka/ Coda Hale Metric Reporter to Kafka]
 +
 +
==Connect==
 +
[https://www.confluent.io/product/connectors/ Kafka Connect]
 +
*[https://github.com/pingles/clj-kafka clj-kafka] [[Clojure]]库
 +
*[https://cwiki.apache.org/confluence/display/KAFKA/Clients Kafka Clients]
 +
 +
==存储==
 +
*Kafka Streams 使用  [[RocksDB]] 做 Local 存储。
 +
 +
==文档==
 +
*[http://docs.huihoo.com/apache/kafka/developing-with-the-go-client-for-apache-kafka.pdf Developing with the Go client for Apache Kafka]
 +
*[http://docs.huihoo.com/apache/kafka/apache-kafka-08-basic-training-verisign.pdf Apache Kafka 0.8 Basic Training]
 +
[http://docs.huihoo.com/apache/kafka/ 更多文档>>>]
 +
 +
==书籍==
 +
*[http://book.huihoo.com/pdf/confluent-kafka-definitive-guide-complete.pdf 《Kafka: The Definitive Guide》]
 +
 +
==服务商==
 +
*[http://www.confluent.io/ Confluent]
 +
前LinkedIn首席工程师Jay Kreps和另两位Kafka创始成员共同创办了Confluent,和LinkedIn一道开发和维护Kafka,并提供商业化的支持订阅服务。
 +
 +
==用户==
 +
*[https://kafka.apache.org/powered-by Powered By Kafka]
 +
*[http://docs.huihoo.com/infoq/archsummit/bj2015/1219/%e6%96%b0%e6%98%9f%e7%94%b5%e5%95%86%ef%bc%9aO2O%e5%8f%8a%e5%85%b6%e4%bb%96%e6%96%b0%e5%9e%8b%e7%94%b5%e5%95%86%e6%a8%a1%e5%bc%8f%e4%b8%93%e9%a2%98/ArchSummit%e5%8c%97%e4%ba%ac-%e3%80%8aUber%e7%9a%84%e6%b5%81%e5%a4%84%e7%90%86%e7%b3%bb%e7%bb%9f%e5%8f%8a%e5%ae%9e%e8%b7%b5%e3%80%8b-%e8%a2%81%e6%b3%b3.pdf Uber的流处理系统及实践] based on [[Apache Samza]]
 +
*[http://www.csdn.net/article/2015-07-30/2825342 七牛是如何搞定每天500亿条日志的]
 +
*纽约时报在CMS系统里使用Kafka来保存他们的文章。
  
 
==图集==
 
==图集==
 
<gallery widths=100px heights=100px perrow=6>
 
<gallery widths=100px heights=100px perrow=6>
 +
image:apache-kafka-01.png|kafka
 +
image:apache-kafka.png|Kafka
 +
image:Apache-Kafka-Distributed-Streaming-Platform.png|分布式流平台
 +
image:confluent-platform.png|Confluent平台
 +
image:without-kafka.png|未使用Kafka
 +
image:with-kafka.png|使用Kafka
 
Image:kafka-deployment-at-linkedin.png|部署于LinkedIn
 
Image:kafka-deployment-at-linkedin.png|部署于LinkedIn
 
Image:kafka-log.png|日志
 
Image:kafka-log.png|日志
 +
image:Sensor-Data-Ingest.png|传感器数据
 +
image:apache-Kafka-broker.png|Broker
 +
image:Apache-Kafka-KStream-Architecture.png|KStream架构
 +
image:apache-kafka-global-discovery-of-state-stores.png|KStream状态
 +
image:apache-storm-kafka.png
 +
image:apache-storm-kafka-pipelines.png
 +
image:Cloudera-cdh-with-apache-kafka.png
 +
image:recommendation-engine-personalization.png|个性化推荐引擎
 +
image:kafka-manager-topic-list.png|Kafka Manager
 +
image:uber-stream-processing.png|Uber流处理架构
 +
image:Kafka-Web-Console.png|Kafka Web Console
 +
image:kafka-the-definitive-guide.png|书籍
 
</gallery>
 
</gallery>
  
 
==链接==
 
==链接==
*[http://sna-projects.com/kafka/ Kafka主页]
+
*[http://kafka.apache.org/ Kafka主页]
 +
*[https://github.com/apache/kafka Kafka @ GitHub]
 +
*[https://github.com/confluentinc Confluent @ GitHub]
 +
*[https://cwiki.apache.org/confluence/display/KAFKA/Ecosystem Kafka Ecosystem]
 +
*[http://docs.huihoo.com/apache/kafka/ Kafka文档]
 +
*[http://www.infoq.com/cn/articles/apache-kafka Apache Kafka:下一代分布式消息系统],有节Kafka与[[Apache ActiveMQ]] V5.4和[[RabbitMQ]] V2.4的性能对比。
 +
*[https://www.confluent.io/blog/apache-kafka-for-service-architectures/ Using Apache Kafka as a Scalable, Event Driven Backbone for Service Architectures]
  
 
[[category:MOM]]
 
[[category:MOM]]
 +
[[category:event]]
 
[[category:LinkedIn]]
 
[[category:LinkedIn]]
[[category:apache]]
+
[[category:java]]
 
[[category:scala]]
 
[[category:scala]]
 +
[[category:big data]]
 +
[[category:Internet of Things]]
 +
[[category:apache]]
 +
[[category:hortonworks]]
 +
[[category:huihoo]]

2020年11月12日 (四) 03:47的最后版本

Kafka 是一个高吞吐量的分布式消息系统,使用 JavaScala 开发,早期由 LinkedIn 开发和内部使用。

目录

[编辑] 简介

Kafka不只是个消息系统

Kafka 类似且堪比 Facebook Scribe 和 Cloudera Flume 系统。

淘宝开源了分布式消息中间件Memorphosis项目,它是Kafka的Java版本,针对淘宝内部应用做了定制和优化。

[编辑] 功能

Kafka 使用 Avro 作为消息序列化框架,每天能高效处理数十亿级别的度量指标和用户活动跟踪信息。Kafka 使用 ZooKeeper 保存集群的元数据信息和消费者信息。

Kafka并非传统意义上的消息队列,它与RabbitMQ等消息系统并不一样。它更像是一个分布式的文件系统或数据库。Kafka与传统消息系统之间有三个关键区别:

  • Kafka持久化日志,这些日志可以被重复读取和无限期保留;
  • Kafka是一个分布式系统:它以集群的方式运行,可以灵活伸缩,在内部通过复制数据提升容错能力和高可用性;
  • Kafka支持实时的流式处理。

以上三点足以将Kafka与传统的消息队列区别开,我们甚至可以把它看成是流式处理平台。

Kafka的解耦能力以及在安全和效率方面的可靠性,使它成为构建数据管道的最佳选择。常见的两种应用场景:

  • 把Kafka作为数据管道两个端点之一,如,把Kafka里的数据移动到S3上,或把MongoDB里的数据移动到Kafka里;
  • 把Kafka作为数据管道两个端点的中间媒介,如,为了把Twitter的数据移动到Elasticsearch上,需要先把数据移动到Kafka里,再将它们从Kafka移动到Elasticsearch上。

[编辑] 新闻

[编辑] 指南

tar -xzf kafka_2.11-0.9.0.0.tgz 
cd kafka_2.11-0.9.0.0
server.properties
port = 9092
advertised.host.name = localhost 
bin/zookeeper-server-start.sh config/zookeeper.properties
bin/kafka-server-start.sh config/server.properties

创建一个topic

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
bin/kafka-topics.sh --list --zookeeper localhost:2181

发送一些消息

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
This is a message
This is another message

启动一个消费者consumer

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

更多细节>>>

[编辑] 分发版

[编辑] 项目

Kafka ecosystem

[编辑] 管理控制台

git clone https://github.com/claudemamo/kafka-web-console
cd kafka-web-console
sbt
> run
http://localhost:9000 

[编辑] 流处理

[编辑] 集成Hodoop

[编辑] 搜索与查询

[编辑] 日志与监控

[编辑] Connect

Kafka Connect

[编辑] 存储

  • Kafka Streams 使用 RocksDB 做 Local 存储。

[编辑] 文档

更多文档>>>

[编辑] 书籍

[编辑] 服务商

前LinkedIn首席工程师Jay Kreps和另两位Kafka创始成员共同创办了Confluent,和LinkedIn一道开发和维护Kafka,并提供商业化的支持订阅服务。

[编辑] 用户

[编辑] 图集

[编辑] 链接

分享您的观点
个人工具
名字空间

变换
操作
导航
工具箱