欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2, C++/F#/Lisp
Apache Kafka
小 |
小 (→简介) |
||
(未显示1个用户的69个中间版本) | |||
第1行: | 第1行: | ||
− | Kafka 是一个高吞吐量的分布式消息系统,使用 [[Scala]] | + | Kafka 是一个高吞吐量的分布式消息系统,使用 [[Java]] 和 [[Scala]] 开发,早期由 [[LinkedIn]] 开发和内部使用。 |
+ | |||
+ | ==简介== | ||
+ | [http://www.infoq.com/cn/news/2017/10/Kafka-not-just-messag-system Kafka不只是个消息系统] [https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying The Log: What every software engineer should know about real-time data's unifying abstraction] | ||
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:// | + | *[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:java]] | ||
[[category:scala]] | [[category:scala]] | ||
+ | [[category:big data]] | ||
+ | [[category:Internet of Things]] | ||
+ | [[category:apache]] | ||
+ | [[category:hortonworks]] | ||
+ | [[category:huihoo]] |
2021年4月22日 (四) 12:36的最后版本
Kafka 是一个高吞吐量的分布式消息系统,使用 Java 和 Scala 开发,早期由 LinkedIn 开发和内部使用。
目录 |
[编辑] 简介
Kafka不只是个消息系统 The Log: What every software engineer should know about real-time data's unifying abstraction
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上。
[编辑] 新闻
- 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
[编辑] 分发版
- Confluent Platform
- Hortonworks Kafka
- IBM Message Hub Apache Kafka as a Service
[编辑] 项目
[编辑] 管理控制台
- Kafka Manager
- kafkat
- Hortonworks Streams Messaging Manager (SMM)
- Kafka Web Console 此项目已不再更新,请访问 Kafka Manager
git clone https://github.com/claudemamo/kafka-web-console cd kafka-web-console sbt > run http://localhost:9000
[编辑] 流处理
- Kafka Streams
- Apache Samza
- Storm Kafka spout
- kafka-storm-starter
- Apache Flink
- Apache Spark Streaming
- Apache Apex
[编辑] 集成Hodoop
[编辑] 搜索与查询
- kafka-elasticsearch-standalone-consumer
- Presto Kafka Connector
- Secor is a service persisting Kafka logs to Amazon S3, Google Cloud Storage and Openstack Swift
[编辑] 日志与监控
- Prometheus Kafka exporter
- syslog-gollector Go语言开发.
- Logging Utility & Daemon
- logkafka: Apache Kafka的日志收集代理 奇虎360开发
- Mozilla Metrics Service
- Coda Hale Metric Reporter to Kafka
[编辑] Connect
[编辑] 存储
- Kafka Streams 使用 RocksDB 做 Local 存储。
[编辑] 文档
[编辑] 书籍
[编辑] 服务商
前LinkedIn首席工程师Jay Kreps和另两位Kafka创始成员共同创办了Confluent,和LinkedIn一道开发和维护Kafka,并提供商业化的支持订阅服务。
[编辑] 用户
- Powered By Kafka
- Uber的流处理系统及实践 based on Apache Samza
- 七牛是如何搞定每天500亿条日志的
- 纽约时报在CMS系统里使用Kafka来保存他们的文章。