Apache Kafka

来自开放百科 - 灰狐
(版本间的差异)
跳转到: 导航, 搜索
(简介)
(简介)
 
(未显示1个用户的1个中间版本)
第1行: 第1行:
Kafka 是一个高吞吐量的分布式消息系统,使用 [[Scala]] 开发,被用于 [[LinkedIn]]
+
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]] 系统。  
第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  使用 [[Apache Avro|Avro]] 作为消息序列化框架,每天能高效处理数十亿级别的度量指标和用户活动跟踪信息。Kafka 使用 [[Apache ZooKeeper|ZooKeeper]] 保存集群的元数据信息和消费者信息。
+
  
 
Kafka并非传统意义上的消息队列,它与[[RabbitMQ]]等消息系统并不一样。它更像是一个分布式的文件系统或数据库。Kafka与传统消息系统之间有三个关键区别:
 
Kafka并非传统意义上的消息队列,它与[[RabbitMQ]]等消息系统并不一样。它更像是一个分布式的文件系统或数据库。Kafka与传统消息系统之间有三个关键区别:
第152行: 第153行:
 
[[category:event]]
 
[[category:event]]
 
[[category:LinkedIn]]
 
[[category:LinkedIn]]
 +
[[category:java]]
 
[[category:scala]]
 
[[category:scala]]
 
[[category:big data]]
 
[[category:big data]]

2021年4月22日 (四) 12:36的最后版本

Kafka 是一个高吞吐量的分布式消息系统,使用 JavaScala 开发,早期由 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上。

[编辑] 新闻

[编辑] 指南

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

[编辑] 用户

[编辑] 图集

[编辑] 链接

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

变换
操作
导航
工具箱