极客时间出品的《Kafka核心技术与实战》由胡夕所作,胡夕是人人贷计算平台部总监,Apache Kafka Contributor。本专栏全面提升你的Kafka实战能力。
订阅价格:
原价¥99,限时¥68 。已有3711 人已学习 · 共42讲 · 每周二 / 四 / 六更新,本课程为图文+音频课程。可在极客时间APP/小程序/网站上永久观看。用我的邀请购买,还会额外返现24元。购买的朋友请加我微信号 dismissmewp ,备注:返现。
Kafka是LinkedIn开发并开源的一套分布式的高性能消息引擎服务,后来被越来越多的公司应用在自己的系统中,可以说,Kafka是大数据时代数据管道技术的首选。在设计的时候,它就实现了高可靠、高吞吐、高可用和可伸缩,得益于这些特性,加上活跃的社区,Kafka成为了一个完备的分布式消息引擎解决方案。
历经多年发展,Kafka的功能和特性也在不断迭代,如今的Kafka集消息系统、存储系统和流式处理平台于一身,并作为连接着各种业务前台和数据后台的消息中间件,在线上环境承担了非常重要的作用。
但在Kafka的实际使用过程中,几乎所有人都或多或少会遇到一些问题,比如:
棘手的线上问题难于定位和解决,怎么办?
在Kafka版本的演进过程中,各种新功能层出不穷,导致各种兼容性问题接踵而至,怎么办?
当集群规模扩展到一定程度后,所追求的高性能与有限的资源之间的矛盾又变得日益尖锐起来,怎么办?
如何顺利填补这些“坑”,是摆在每个Kafka学习者面前最亟待解决的问题。
《Kafka核心技术与实战》作者介绍
胡夕,目前就职于人人贷,任计算平台部总监,是Apache Kafka社区活跃的代码贡献者,著有《Apache Kafka实战》一书,曾任职于IBM、搜狗和新浪微博等公司。胡夕对Kafka及其他开源流处理框架与技术有深刻理解,精通Kafka原理,主导过多个十亿级\/天的消息引擎业务系统的设计与搭建,具有丰富的线上环境定位和诊断调优经验,曾给多家大型公司提供企业级Kafka培训。
你好,我是胡夕,Apache Kafka 的一名代码贡献者,目前在社区的 Patch 提交总数位列第 22 位,应该说算是国内比较活跃的贡献者了。
在过去 5 年中,我经历了 Kafka 从最初的 0.8 版本逐步演进到现在的 2.3 版本的完整过程,踩了很多坑也交了很多学费,慢慢地我梳理出了一个相对系统、完整的 Kafka 应用实战指南,最终以“Kafka 核心技术与实战”专栏的形式呈现给你,希望分享我对 Apache Kafka 的理解和实战方面的经验,帮你透彻理解 Kafka、更好地应用 Kafka。
你可能会有这样的疑问,我为什么要学习 Kafka 呢?要回答这个问题,我们不妨从更大的视角来审视它,先聊聊我对这几年互联网技术发展的理解吧。
互联网蓬勃发展的这些年涌现出了很多令人眼花缭乱的新技术。以我个人的浅见,截止到 2019 年,当下互联网行业最火的技术当属 ABC 了,即所谓的 AI 人工智能、BigData 大数据和 Cloud 云计算云平台。我个人对区块链技术发展前景存疑,毕竟目前没有看到特别好的落地应用场景,也许在未来几年它会更令人刮目相看吧。
在这 ABC 当中,坦率说 A 和 C 是有点曲高和寡的,不是所有玩家都能入场。反观 B 要显得平民得多,几乎所有公司都能参与进来。我曾经到过一个理发厅,那里的人都宣称他们采用了大数据系统帮助客户设计造型,足见 BigData 是很“下里巴人”的。
作为工程师或架构师,你在实际工作过程中一定参与到了很多大数据业务系统的构建。由于这些系统都是为公司业务服务的,所以通常来说它们仅仅是执行一些常规的业务逻辑,因此它们不能算是计算密集型应用,相反更应该是数据密集型的。
对于数据密集型应用来说,如何应对数据量激增、数据复杂度增加以及数据变化速率变快,是彰显大数据工程师、架构师功力的最有效表征。我们欣喜地发现 Kafka 在帮助你应对这些问题方面能起到非常好的效果。就拿数据量激增来说,Kafka 能够有效隔离上下游业务,将上游突增的流量缓存起来,以平滑的方式传导到下游子系统中,避免了流量的不规则冲击。由此可见,如果你是一名大数据从业人员,熟练掌握 Kafka 是非常必要的一项技能。
刚刚所举的例子仅仅是 Kafka 助力业务的一个场景罢了。事实上,Kafka 有着非常广阔的应用场景。不谦虚地说,目前 Apache Kafka 被认为是整个消息引擎领域的执牛耳者,仅凭这一点就值得我们好好学习一下它。另外,从学习技术的角度而言,Kafka 也是很有亮点的。我们仅需要学习一套框架就能在实际业务系统中实现消息引擎应用、应用程序集成、分布式存储构建,甚至是流处理应用的开发与部署,听起来还是很超值的吧。
不仅如此,再给你看一个数据。援引美国 2019 年 Dice 技术薪资报告中的数据,在 10 大薪资最高的技术技能中,掌握 Kafka 以平均每年 12.8 万美元排名第二!排名第一位的是 13.2 万美元 / 年的 Go 语言。好吧,希望你看到这个之后不会立即关闭我的专栏然后转头直奔隔壁的 Go 语言专栏。虽然这是美国人才市场的数据,但是我们有理由相信在国内 Kafka 的行情也是水涨船高。2019 年两会上再一次提到了要深化大数据、人工智能等研发应用,而 Kafka 无论是作为消息引擎还是实时流处理平台,都能在大数据工程领域发挥重要的作用。
总之 Kafka 是个利器,值得一试!既然知道了为什么要学 Kafka,那我们就要行动起来,把它学透,而学透 Kafka 有什么路径吗?
一旦确定了要使用的客户端,马上去官网上学习一下代码示例,如果能够正确编译和运行这些样例,你就能轻松地驾驭客户端了。
下一步你可以尝试修改样例代码尝试去理解并使用其他的 API,之后观测你修改的结果。如果这些都没有难倒你,你可以自己编写一个小型项目来验证下学习成果,然后就是改善和提升客户端的可靠性和性能了。到了这一步,你可以熟读一遍 Kafka 官网文档,确保你理解了那些可能影响可靠性和性能的参数。
最后是学习 Kafka 的高级功能,比如流处理应用开发。流处理 API 不仅能够生产和消费消息,还能执行高级的流式处理操作,比如时间窗口聚合、流处理连接等。
如果你是系统管理员或运维工程师,那么相应的学习目标应该是学习搭建及管理 Kafka 线上环境。如何根据实际业务需求评估、搭建生产线上环境将是你主要的学习目标。另外对生产环境的监控也是重中之重的工作,Kafka 提供了超多的 JMX 监控指标,你可以选择任意你熟知的框架进行监控。有了监控数据,作为系统运维管理员的你,势必要观测真实业务负载下的 Kafka 集群表现。之后如何利用已有的监控指标来找出系统瓶颈,然后提升整个系统的吞吐量,这也是最能体现你工作价值的地方。
在明确了自己要学什么以及怎么学之后,你现在会不会有一种感慨:原来我要学习这么多东西呀!不用担心,刚刚我提到的所有内容都会在专栏中被覆盖到。
《Kafka核心技术与实战》专栏介绍
专栏分为六部分,共42讲
第一部分,Kafka入门。作为正式学习前的热身,将介绍消息引擎这类系统的原理和用途,以及作为优秀的消息引擎代表,Kafka是如何“脱颖而出”的。
第二部分,Kafka的基本使用。将重点探讨Kafka如何用于生产环境,特别是线上环境的方案该如何制定。
第三部分,客户端实践及原理剖析。将带你学习Kafka客户端的方方面面,既有生产者的实操讲解,也有消费者的原理剖析,是专栏的重点内容。
第四部分,深入Kafka内核。将着重介绍Kafka最核心的设计原理,包括Controller的设计机制、请求处理的全流程等。
第五部分,管理与监控。这部分涵盖Kafka运维与监控的内容,将讨论如何高效运维Kafka集群,并分享有效监控Kafka的实战经验。
第六部分,高级Kafka应用之流处理。最后这一部分将会介绍Kafka流处理组件Kafka Streams的实战应用,并带你从头开发一个demo项目。
《Kafka核心技术与实战》课程目录
开篇词I为什么要学习Kafka?
Kafka入门
- 消息引擎系统ABC
- —篇文章帯你快速搞定Kafka术语
- ApacheKafka真的只是消息引擎系统吗?
- 我应该如何选择Kafka版本?
- 聊聊Kafka的版本号
Kafka的基本使用
- Kafka线上集群部署方案怎么做?
- 最最最重要的集群参数配置(上)
- 最最最重要的集群参数配置(下)
客户端实践及原理剖析
- 生产者消息分区机制原理剖析
- 生产者压缩算法面面观
- 无消息丢失配置怎么实现?
- 客户端都有哪些不常见但是很高级的功能?
- Java生产者是如何管理TCP连接的?
- 幂等生产者和事务生产者是一回事吗?
- 消费者组到底是什么?
- 揭开神秘的“位移主题”面纱
- 消费者组重平衡能避免吗?
- Kafka中位移提交那些事儿
- CommitFailedException 异常怎么处理?
- 多线程开发消费者实例
- Java消费者是如何管理TCP连接的?
- 消费者组消费进度监控都怎么实现?
深入Kafka内核
- Kafka备份机制详解
- 请求是怎么被处理的?
- 消费者组重平衡全流程解析
- 你一定不能错过的Kafka控制器
- 关于高水位和Leader Epoch的讨论
管理与监控
- 主题管理知多少?
- Kafka动态配置了解下?
- 怎么重设消费者组位移?
- 常见工具脚本大汇总
- KafkaAdminClient: Kafka的运维利器
- Kafka认证机制用哪家?
- 云环境下的授权该怎么做?
- 跨集群备份解决方案MirrorMaker
- 你应该怎么监控Kafka?
- 主流监控框架你知道多少?
- 调优Kafka你做到了吗?
- 从0搭建基于Kafka的企业级实时日志流处理平台
高级Kafka应用之流处理
- Kafka Streams与其他流处理平台的差异在哪?
- Kafka Streams DSL 开发实例
- Kafka Streams在金融领域的应用
我的公众号:猿人学 Python 上会分享更多心得体会,敬请关注。
***版权申明:若没有特殊说明,文章皆是猿人学 yuanrenxue.con 原创,没有猿人学授权,请勿以任何形式转载。***
说点什么吧...