`
san_yun
  • 浏览: 2597214 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

LinkedIn发布kafka

    博客分类:
  • mq
 
阅读更多

原文:http://blog.linkedin.com/2011/01/11/open-source-linkedin-kafka/

 

Code Alert! This is a part of our continuing series on Engineering at LinkedIn. If this isn’t your cup of Java, check back tomorrow for regular LinkedIn programming. In the meanwhile, check out some of our latest product features, tips and tricks, or user stories. - Ed.

 

We are pleased to open-source another piece of infrastructure software developed at LinkedIn, Kafka, a persistent, efficient, distributed message queue. Kafka is primarily intended for tracking various activity events generated on LinkedIn’s website, such as pageviews, keywords typed in a search query, ads presented, etc. Those activity events are critical for monitoring user engagement as well as improving relevancy in various other products. Each day, a substantially large number of such events are generated. Therefore, we need a solution that’s scalable and incurs low overhead.

 

We first looked at several existing queuing solutions in the market. The most popular ones are based on JMS. Although JMS offers a rich set of features, it also adds significant overhead in the message representation. Additionally, some JMS implementations are optimized for the case when all messages can be cached in memory and their performance starts to degrade significantly when the in-memory buffer is saturated. Finally, most existing solutions don’t have a clean design for scaling out.

 

That’s why we decided to build Kafka. In summary, Kafka has the following three design principles: (1) a very simple API for both producers and consumers; (2) low overhead in network transferring as well as on-disk storage; (3) a scaled out architecture from the beginning. More details on the technical aspect of Kafka can be found here.

 

Today, Kafka has been used in production at LinkedIn for a number of projects. There are both offline and online usage. In the offline case, we use Kafka to feed all activity events to our data warehouse and Hadoop, from which we then run various batch analysis. In the online case, a service will consume events in real time. For example, in LinkedIn Signal, Kafka is used to deliver all network updates to our search engine. Typically , an update becomes searchable within a few seconds after it is posted. The design of Kafka allows us to use a single infrastructure to support events delivery for both cases.

We feel that Kafka can be very useful in many places outside of LinkedIn. By open sourcing it, we hope to work with people in the community to keep improving Kafka in the future. We welcome comments and suggestions from everybody.

 

分享到:
评论

相关推荐

    LinkedIn基于Kafka和ElasticSearch的实时日志分析系统

    LinkedIn基于Kafka和ElasticSearch的实时日志分析系统

    Kafka技术内幕-图文详解Kafka源码设计与实现

    Kafka自LinkedIn开源以来就以高性能、高吞吐量、分布式的特性著称,本书以0.10版本的源码为基础,深入分析了Kafka的设计与实现,包括生产者和消费者的消息处理流程,新旧消费者不同的设计方式,存储层的实现,协调者...

    Kafka技术内幕:图文详解Kafka源码设计与实现(完整版)

    Kafka自LinkedIn开源以来就以高性能、高吞吐量、分布式的特性著称,本书以0.10版本的源码为基础,深入分析了Kafka的设计与实现,包括生产者和消费者的消息处理流程,新旧消费者不同的设计方式,存储层的实现,协调者...

    Kafka技术内幕图文详解源码设计与实现

    Kafka自LinkedIn开源以来就以高性能、高吞吐量、分布式的特性著称,本书以0.10版本的源码为基础,深入分析了Kafka的设计与实现,包括生产者和消费者的消息处理流程,新旧消费者不同的设计方式,存储层的实现,协调者...

    kafka document

    Apache Kafka was originated at LinkedIn and later became an open sourced Apache project in 2011, then First-class Apache project in 2012. Kafka is written in Scala and Java. Apache Kafka is publish-...

    kafka & mafka client开发与实践

    Apache Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,后来成为Apache项目的一部分。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。 Apache Kafka与传统消息系统...

    Kafka技术内幕

    Kafka自LinkedIn开源以来就以高性能、高吞吐量、分布式的特性著称,本书以0.10版本的源码为基础,深入分析了Kafka的设计与实现,包括生产者和消费者的消息处理流程,新旧消费者不同的设计方式,存储层的实现,协调者...

    kafka技术内幕

    Kafka自LinkedIn开源以来就以高性能、高吞吐量、分布式的特性著称,本书以0.10版本的源码为基础,深入分析了Kafka的设计与实现,包括生产者和消费者的消息处理流程,新旧消费者不同的设计方式,存储层的实现,协调者...

    kafka学习资料

    kafka是最初由Linkedin公司开发,使用Scala语言编写,Kafka是一个分布式、分区的、多副本的、多订阅者的日志系统(分布 式MQ系统),可以用于web/nginx日志,搜索日志,监控日志,访问日志等等。 Kafka是一种分布式的...

    Apache Kafka

    kafka是一个分布式消息发布订阅系统,它最初由LinkedIn公司基于独特的设计实现为一个分布式的提交日志系统( a distributed commit log),,之后成为Apache项目的一部分。Kafka系统快速、可扩展并且可持久化。它的...

    kafka权威指南

    身于LinkedIn的Kafka核心作者和一线技术人员共同执笔,详细介绍了如何部署Kafka集群、开发可靠的基于事件驱动的微服务,以及基于Kafka平台构建可伸缩的流式应用程序.

    kafka订阅消息系统

    Kafka是一个分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。

    camus:LinkedIn的上一代Kafka到HDFS管道

    #### Camus正在逐步淘汰,由取代。 对于那些对Camus使用或感兴趣的人,我们建议您看看Gobblin。 ####有关从Camus迁移到Gobblin的说明,请查看 。

    Kafka The Definitive Guide.pdf

    负责开发Kafka的CONFLUENT和LinkedIn的工程师解释了如何部署生产Kafka集群,编写可靠的事件驱动的微服务,以及在这个平台上构建可伸缩的流处理应用程序。通过详细的示例,您将了解Kafka的设计原则、可靠性保证、关键...

    Java实现Kafka数据生产者

    Kafka基于发布-订阅的消息队列模型,消息以主题(topics)的形式发布到Kafka集群中的一个或多个分区(partitions)上,并可以被一个或多个消费者应用程序订阅和处理。Kafka提供了持久性存储、数据复制和容错机制,...

    消息队列之kafka.docx

    Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种场景需求:比如基于hadoop...

    Apache Kafka设计解析

    Kafka 是由 LinkedIn 开发的一个分布式的消息系统, 使用 Scala 编写, 它以可水平扩展和高吞吐率而被广泛使用。 目前越来越多的开源分布式处理系统如Cloudera、 Apache Storm、Spark 都支持与 Kafka 集成。

    Kafka培训课程PPT资源

    Kafka 是分布式发布-订阅消息系统。它最初由 LinkedIn 公司开发,使用 Scala语言编写,之后成为 Apache 项目的一部分。Kafka 是一个分布式的,可划分的,多订阅者,冗余备份的持久性的日志服务。它主要用于处理活跃的...

    Kafka 开发手册(扫描版)

    Apache Kafka起源于LinkedIn,后来于2011年成为Apache开源项目,然后于2012年成为Apache项目的第一个类别。Kafka是使用Scala和Java编写的。 Apache Kafka是基于 - 发布订阅的容错消息系统。 它具有快速,可扩展和...

Global site tag (gtag.js) - Google Analytics