专栏首页Spark学习技巧重磅发布:Kafka迎来1.0.0版本,正式告别四位数版本号

重磅发布:Kafka迎来1.0.0版本,正式告别四位数版本号

Kafka 从首次发布之日起,已经走过了七个年头。从最开始的大规模消息系统,发展成为功能完善的分布式流式处理平台,用于发布和订阅、存储及实时地处理大规模流数据。来自世界各地的数千家公司在使用 Kafka,包括三分之一的 500 强公司。Kafka 以稳健的步伐向前迈进,首先加入了复制功能和无边界的键值数据存储,接着推出了用于集成外部存储系统的 Connect API,后又推出了为实时应用和事件驱动应用提供原生流式处理能力的 Streams API,并于今年春季开始支持仅一次处理语义。如此广泛的应用和完备的功能以及如此悠久的历史,无一不在说明 Kafka 已经成为一款稳定的企业级产品。而更为激动人心的是,Kafka 现在正式迎来了 1.0.0 版本!

Kafka 1.0.0 发布的主要内容如下:

  • 0.10.0 版本里开始引入的 Streams API 在 1.0.0 版本里继续演进,改进了 builder API(KIP-120),新增了用于查看运行时活跃任务的 API(KIP-130)和用于聚合分区的 cogroup API(KIP-150)。增强的 print() 和 writeAsText() 方法让调试变得更容易(KIP-160)。其他更多信息可以参考 Streams 文档。
  • 改进了 Connect 的度量指标(KIP-196),新增了大量用于健康监测的度量指标(KIP-188),并提供了集群的 GloabalTopicCount 和 GlobalPartitionCount 度量指标(KIP-168)。
  • 支持 Java 9,实现更快的 TLS 和 CRC32C,加快了加密速度,降低了计算开销。
  • 调整了 SASL 认证模块的错误处理逻辑(KIP-152),原先的认证错误信息现在被清晰地记录到日志当中。
  • 更好地支持磁盘容错(KIP-112),更优雅地处理磁盘错误,单个 JBOD 上的磁盘错误不会导致整个集群崩溃。
  • 0.11.0 版本中引入的幂等性生产者需要将 max.in.flight.requests.per.connection 参数设置为 1,这对吞吐量造成了一定的限制。而在 1.0.0 版本里,这个参数最大可以被设置为 5(KAFKA-5949),极大提升了吞吐量范围。

关于新版本更多的变化可以查看发布说明:

https://dist.apache.org/repos/dist/release/kafka/1.0.0/RELEASE_NOTES.html

下载源代码:

https://www.apache.org/dyn/closer.cgi?path=/kafka/1.0.0/kafka-1.0.0-src.tgz

二进制包

Scala 2.11:

https://www.apache.org/dyn/closer.cgi?path=/kafka/1.0.0/kafka_2.11-1.0.0.tgz

Scala 2.12:

https://www.apache.org/dyn/closer.cgi?path=/kafka/1.0.0/kafka_2.12-1.0.0.tgz

正值 Kafka 1.0.0 正式版本发布之际,我们梳理了一下公众号上已发布的 Kafka 技术干货,并选出了部分精华文章,希望能帮助大家温故而知新。

崛起的 Kafka

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

随着微服务的流行,很多公司都在尝试将现有的系统进行架构升级。促成 Movio 公司架构改造的一项关键技术就是 Kafka 消息队列。

Kafka 作为分布式消息队列,在可靠性和可扩展性方面有非常大的优势。它不仅成为了 Movio 公司基础架构的关键组成部分,还为正在创建的系统架构提供了依据。

本文译自 Braedon Vickers 发布在 Movio 上的一篇文章,详尽地探讨了在微服务架构升级的过程中,如何使用 Kafka 将微服务之间的耦合降到最低,同时能让整个系统在保证高可用的前提下做到高可扩展。

微服务架构界的“网红”来了——崛起的 Kafka

Kafka 全面解析

Kafka 数据可靠性深度解读

Kafka 作为一个商业级消息中间件,消息可靠性的重要性可想而知。如何确保消息的精确传输?如何确保消息的准确存储?如何确保消息的正确消费?这些都是需要考虑的问题。

唯品会消息中间件团队首先从 Kafka 的架构着手,解释了 Kafka 的基本原理,然后通过对 kakfa 的存储机制、复制原理、同步原理、可靠性和持久性保证等等一步步对其可靠性进行分析,最后通过 benchmark 来增强对 Kafka 高可靠性的认知。

kafka 数据可靠性深度解读

Kafka Stream 设计详解

本文介绍了 Kafka Stream 的背景,如 Kafka Stream 是什么,什么是流式计算,以及为什么要有 Kafka Stream。接着介绍了 Kafka Stream 的整体架构、并行模型、状态存储以及主要的两种数据集 KStream 和 KTable。然后分析了 Kafka Stream 如何解决流式系统中的关键问题,如时间定义、窗口操作、Join 操作、聚合操作,以及如何处理乱序和提供容错能力。最后结合示例讲解了如何使用 Kafka Stream。

流式计算新贵 Kafka Stream 设计详解

Kafka 不只是个消息系统

Confluent 联合创始人兼 CEO Jay Kreps 发表了一篇博文,指出了 Kafka 的真正定位——它不只是个消息系统,它还是个存储系统,而它的终极目标是要让流式处理成为现代企业的主流开发范式。

人们更多的是把 Kafka 当成了消息队列系统。消息队列有一些不成文的规则,比如“不要在消息队列里保存消息”。传统的消息系统在设计上存在很多不足。从根本上讲,任何一个异步消息系统都会保存消息,只是时间很短,有时候只有几秒钟,直到消息被消费为止。

实际上,Kafka 并非传统意义上的消息队列,它与 RabbitMQ 等消息系统并不一样。它更像是一个分布式的文件系统或数据库。Kafka 与传统消息系统之间有三个关键区别。

  • Kafka 持久化日志,这些日志可以被重复读取和无限期保留
  • Kafka 是一个分布式系统:它以集群的方式运行,可以灵活伸缩,在内部通过复制数据提升容错能力和高可用性
  • Kafka 支持实时的流式处理

以上三点足以将 Kafka 与传统的消息队列区别开,我们甚至可以把它看成是流式处理平台。因此,在 Kafka 里存储数据并不是什么疯狂事,甚至可以说 Kafka 本来就是设计用来存储数据的。数据经过校验后被持久化在磁盘上,并通过复制副本提升容错能力。再多的数据都不会拖慢 Kafka,在生产环境中,有些 Kafka 集群甚至已经保存超过 1 TB 的数据。

推荐阅读:

1,大数据集群安全系列之kafka使用SSL加密认证

2,大数据基础系列之kafkaConsumer010+的多样demo及注意事项

3,大数据基础系列之kafka011生产者缓存超时,幂等性和事务实现

4,spark源码系列之内部通讯的三种机制

本文分享自微信公众号 - Spark学习技巧(bigdatatip),作者:AI前线

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-11-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 消息队列服务Kafka揭秘:痛点、优势以及适用场景

    摘要:消息队列Kafka是一个分布式的、高吞吐量、高可扩展性消息队列服务,广泛用于日志收集、监控数据聚合、流式数据处理、在线和离线分析等,是大数据生态中不可或缺...

    Spark学习技巧
  • Apache Kafka:优化部署的 10 种最佳实践

    Apache Kafka 肯定会像它的同名小说家一样不负众望,因为它能激奋新来者、挑战深度,若能更全面的理解它还会产生丰厚的回报。抛开文学,书归正传。遵循 ka...

    Spark学习技巧
  • 最常见的Kafka面试题及答案

    本文为您盘点最常见的Kafka面试题,同时也是对Apache Kafka初学者必备知识点的一个整理与介绍。

    Spark学习技巧
  • 如何全方位掌握 Kafka 核心技术?

    毋庸置疑,目前 Apache Kafka 是整个消息引擎领域的执牛耳者,也是大数据生态圈中颇为重量级的一员。从最早诞生于 LinkedIn 的“分布式消息系统”...

    芋道源码
  • 书单丨Kafka这么厉害,难怪都在读这几本书

    基于2.0.0版本,从实战到深度的原理解析讲述Kafka的知识点、常见误区的解读、常见问题的解决方案及生态应用的扩展。

    博文视点Broadview
  • Kafka详细设计及其生态系统

    Kafka生态-Kafka Core,Kafka Streams,Kafka Connect,Kafka REST Proxy和Schema Registry ...

    用户1263954
  • Kafka架构

    首先,如果您不确定Kakfa是什么,请参阅这篇文章(http://cloudurable.com/blog/what-is-kafka/index.html)。...

    用户1263954
  • Apache Kafka内核深度剖析

    目前来说市面上可以选择的消息队列非常多,像activemq,rabbitmq,zeromq已经被大多数人耳熟能详,特别像activemq早期应用在企业中的总线通...

    ThoughtWorks
  • Kafka详细的设计和生态系统

    Kafka 的核心是经纪人,主题,日志,分区和集群。核心也包括像 MirrorMaker 这样的相关工具。前面提到的是 Kafka,因为它存在于 Apache ...

    人工智能资讯小编
  • 什么是Kafka

    Kafka的增长是爆炸性的。财富500强企业中超过三分之一使用卡夫卡。这些公司包括十大旅游公司,十大银行中的七家,十大保险公司中的八家,十大电信公司中的九家,等...

    大数据弄潮儿

扫码关注云+社区

领取腾讯云代金券