Apache Kafka

来自开放百科 - 灰狐
(版本间的差异)
跳转到: 导航, 搜索
(新闻)
(未显示1个用户的16个中间版本)
第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]] 系统。  
第5行: 第8行:
 
淘宝开源了分布式消息中间件[[Memorphosis]]项目,它是Kafka的Java版本,针对淘宝内部应用做了定制和优化。
 
淘宝开源了分布式消息中间件[[Memorphosis]]项目,它是Kafka的Java版本,针对淘宝内部应用做了定制和优化。
  
==简介==
+
==功能==
[http://www.infoq.com/cn/news/2017/10/Kafka-not-just-messag-system Kafka不只是个消息系统]
+
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上。
  
 
==新闻==
 
==新闻==
第14行: 第29行:
 
  tar -xzf kafka_2.11-0.9.0.0.tgz  
 
  tar -xzf kafka_2.11-0.9.0.0.tgz  
 
  cd kafka_2.11-0.9.0.0
 
  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/zookeeper-server-start.sh config/zookeeper.properties
 
  bin/kafka-server-start.sh config/server.properties
 
  bin/kafka-server-start.sh config/server.properties
第24行: 第42行:
 
  This is another message
 
  This is another message
 
启动一个消费者consumer
 
启动一个消费者consumer
  bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
+
  bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
 
[https://kafka.apache.org/documentation.html#quickstart 更多细节>>>]
 
[https://kafka.apache.org/documentation.html#quickstart 更多细节>>>]
  
第38行: 第56行:
 
*[[Kafka Manager]]
 
*[[Kafka Manager]]
 
*[https://github.com/airbnb/kafkat kafkat]
 
*[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
 
*[https://github.com/claudemamo/kafka-web-console Kafka Web Console] 此项目已不再更新,请访问 Kafka Manager
 
  git clone https://github.com/claudemamo/kafka-web-console
 
  git clone https://github.com/claudemamo/kafka-web-console
第65行: 第84行:
  
 
===日志与监控===
 
===日志与监控===
*[https://github.com/otoolep/syslog-gollector syslog-gollector], [[Go]]语言开发.
+
*[[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/araddon/loges Logging Utility & Daemon]
*[https://github.com/Qihoo360/logkafka/ logkafka: Apache Kafka的日志收集代理], 奇虎360开发.
+
*[https://github.com/Qihoo360/logkafka/ logkafka: Apache Kafka的日志收集代理] 奇虎360开发
 
*[https://github.com/mozilla-metrics/bagheera Mozilla Metrics Service]
 
*[https://github.com/mozilla-metrics/bagheera Mozilla Metrics Service]
 
*[https://github.com/stealthly/metrics-kafka/ Coda Hale Metric Reporter to Kafka]
 
*[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://github.com/pingles/clj-kafka clj-kafka] [[Clojure]]库
 
*[https://cwiki.apache.org/confluence/display/KAFKA/Clients Kafka Clients]
 
*[https://cwiki.apache.org/confluence/display/KAFKA/Clients Kafka Clients]
第88行: 第109行:
 
==服务商==
 
==服务商==
 
*[http://www.confluent.io/ Confluent]
 
*[http://www.confluent.io/ Confluent]
 +
前LinkedIn首席工程师Jay Kreps和另两位Kafka创始成员共同创办了Confluent,和LinkedIn一道开发和维护Kafka,并提供商业化的支持订阅服务。
  
 
==用户==
 
==用户==
*[https://cwiki.apache.org/confluence/display/KAFKA/Powered+By Powered By 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://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亿条日志的]
 
*[http://www.csdn.net/article/2015-07-30/2825342 七牛是如何搞定每天500亿条日志的]
 +
*纽约时报在CMS系统里使用Kafka来保存他们的文章。
  
 
==图集==
 
==图集==
第98行: 第121行:
 
image:apache-kafka-01.png|kafka
 
image:apache-kafka-01.png|kafka
 
image:apache-kafka.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:without-kafka.png|未使用Kafka
 
image:with-kafka.png|使用Kafka
 
image:with-kafka.png|使用Kafka
第119行: 第144行:
 
*[http://kafka.apache.org/ Kafka主页]
 
*[http://kafka.apache.org/ Kafka主页]
 
*[https://github.com/apache/kafka Kafka @ GitHub]
 
*[https://github.com/apache/kafka Kafka @ GitHub]
 +
*[https://github.com/confluentinc Confluent @ GitHub]
 
*[https://cwiki.apache.org/confluence/display/KAFKA/Ecosystem Kafka Ecosystem]
 
*[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的性能对比。  
 
*[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]
 
*[https://www.confluent.io/blog/apache-kafka-for-service-architectures/ Using Apache Kafka as a Scalable, Event Driven Backbone for Service Architectures]
第126行: 第153行:
 
[[category:event]]
 
[[category:event]]
 
[[category:LinkedIn]]
 
[[category:LinkedIn]]
 +
[[category:java]]
 
[[category:scala]]
 
[[category:scala]]
 
[[category:big data]]
 
[[category:big data]]

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,并提供商业化的支持订阅服务。

用户

图集

链接

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

变换
操作
导航
工具箱