Kafka简介

Kafka 最早是由 LinkedIn 公司开发的一套分布式的高性能消息引擎服务,于 2011 年初开源,并于 2012 年 10 月 23 日从 Apache 孵化器毕业,成为 Apache 的顶级项目。

Kafka 最初的设计目的是用于处理海量的日志,后来历经多年发展和完善,如今的 Kafka 集消息系统、存储系统和流式处理平台于一身,在消息引擎领域是执牛耳者,在大数据工程领域、流计算领域也起着举足轻重的作用,具有非常广阔的应用场景。

为什么要掌握Kafka

因为掌握了 Kafka,手上就多了一份拿高薪的筹码。

援引美国 2019 年 Dice 技术薪资报告中的数据,在十大薪资最高的技术技能中,掌握 Kafka 以平均每年 12.7554 万美元排名第二!虽然这是美国人才市场的数据,但从国内互联网公司的技术招聘需求中,我们也可以看出 Kafka 在国内的行情也是水涨船高。

(查看完整报告:https://marketing.dice.com/pdf/Dice_TechSalaryReport2019.pdf

如何全面掌握Kafka

作为一名软件开发工程师,在学习开源项目时,最好是采取“自顶向下”的学习方法,即先初步掌握开源项目的基本使用、功能原理、关键设计等,然后再深入到源码,学习其关键技术是如何实现的,以及其代码写作方式等。

对于学习 Kafka 也不例外。具体步骤如下:

  • 安装、运行 Kafka。
  • 选择合适的 Kafka 客户端,学习官网上的示例代码,并尝试修改示例代码,如修改输入值、或使用其他的 API 功能,观测修改后的运行结果。此时可编写一个简单的程序(如生产者、消费者程序)进行验证。
  • 通读 Kafka 的设计文档,了解消息队列设计的关键决策部分,并确保理解了那些可能影响可靠性、稳定性和性能的参数。
  • 学习 Kafka 的高级功能,如拦截器、幂等性生产者、事务、流处理应用开发等。
  • 研究原理,如生产者消息分区机制、副本机制、重平衡等。
  • 深入源码,学习关键原理背后的具体编码如何实现。但不建议通读源码(此种方法效率特别低,效果也不好),最好是带着明确目的去研究源码,做到有的放矢,才能事半功倍。

在实际应用中,你可能还需要学会管理和监控 Kafka,并从 Kafka 在真实负载下的表现,找出系统可能存在的瓶颈,保障系统的稳定性和提升系统的性能。

(END)