MQ同类产品对比以及选型-Kafka的背后故事

        Kafka诞生于LinkedIn,使用Scala语言编写,目标是为处理实时数据提供一个统一、高通量、低等待的平台。Kafka设计之初是为了解决Linkedin公司数据管道(datapipe)问题(主要是监控和跟踪系统的需求,也就是日志)。截至2015年8月, Kafka帮助LinkedIn的使用量增长了超过1万亿条消息,每天消耗的数据超过1 PB。

Kafka名字的由来

       “我认为,由于Kafka是一个针对写作优化的系统,使用作者的名字是有道理的。 我在大学里学过很多课程,并且喜欢弗兰兹卡夫卡。 此外,对于一个开源项目来说这个名字听起来很酷。”--Jay Kreps

Kafka产生背景
        kafka 起创于2010年前后,作为一个消息系统,早起设计的目的是用作 LinkedIn 的活动流(Activity Stream)和运营数据处理管道(Pipeline)。当时 LinkedIn 也和很多大的互联网公司一样,每天都要收集很多的数据,包含用户的活动数据和运营数据。活动数据包括页面访问量(PV),浏览轨迹,用户搜索。运营数据包括务器的性能数据CPU、IO使用率、请求时间、服务日志等。这些数据都是实时生成的,而且数量非常庞大。Linkin在尝试很多MQ产品发现,当时 MQ 系统都有两个比较通用的缺陷:一是数据丢失,当消费者无法及时消费数据时数据会被丢失;二是当时的MQ产品很难配合数据的波峰和波谷。

“所以 2010 年我们开始自己开发 Kafka。它的设计理念非常简单,就是一个以 append-only 日志作为核心的数据存储结构。简单来说,就是我们把数据以日志的方式进行组织,所有对于日志的写操作,都提交在日志的最末端,对日志也只能是顺序读取。Kafka 的日志存储是持久化到磁盘上的,虽然普遍感觉上 HDD 非常慢,但其实如果能够把所有的读和写都按照顺序来进行操作,会发现它几乎可以媲美内存的随机访问。另外,我们直接使用文件系统的缓存,如果你读取的基本上是在日志最尾端,那么绝大可能性只会访问到这个文件系统的缓存,而不需落盘。所以它的速度非常快。”---王国璋老师在 QCon 2018 上海站的演讲

Kafka发展历程
        2010年底Kafka在GitHub上作为开源项目发布,初始版本为0.7.0。
        2011年7月被提议并被接受为Apache Software Foundation孵化器项目。
        2012年10月开始Apache Kafka毕业于孵化器成为apache顶级项目;
        2014年,开发者团队jay kreps,neha narkhede,jun rao离开linkedin,创建confluent,并着眼于Kafka。
总结:
        Kafka作为一个流处理平台,是一个不断进化的平台。最后再次借用王国璋老师的话总结一下Kafka是什么。
“最早的时候,我们说 Kafka 是一个可扩展的订阅发布的消息系统;2013 年的时候,我们说 Kafka 是一个实时数据通道;2015 年的时候,我们说 Kafka 是一个分布式的备份 Log,同年,我们提出了 Kafka Architecture,是针对 Lamda Architecture 提出的一个新的框架,我们认为 Kafka 是一个统一数据集成堆栈。”---王国璋老师在 QCon 2018 上海站的演讲
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值