Kafka核心技术与实战-胡夕-极客时间-返现24元

极客时间专栏 2019-06-05 12:08:01 阅读(6993) 评论(0)

极客时间出品的《Kafka核心技术与实战》由胡夕所作,胡夕是人人贷计算平台部总监,Apache Kafka Contributor。本专栏全面提升你的Kafka实战能力。

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核心技术与实战 作者 胡夕

《Kafka核心技术与实战》专栏介绍

专栏分为六部分,共42讲

第一部分,Kafka入门。作为正式学习前的热身,将介绍消息引擎这类系统的原理和用途,以及作为优秀的消息引擎代表,Kafka是如何“脱颖而出”的。

第二部分,Kafka的基本使用。将重点探讨Kafka如何用于生产环境,特别是线上环境的方案该如何制定。

第三部分,客户端实践及原理剖析。将带你学习Kafka客户端的方方面面,既有生产者的实操讲解,也有消费者的原理剖析,是专栏的重点内容。

第四部分,深入Kafka内核。将着重介绍Kafka最核心的设计原理,包括Controller的设计机制、请求处理的全流程等。

第五部分,管理与监控。这部分涵盖Kafka运维与监控的内容,将讨论如何高效运维Kafka集群,并分享有效监控Kafka的实战经验。

第六部分,高级Kafka应用之流处理。最后这一部分将会介绍Kafka流处理组件Kafka Streams的实战应用,并带你从头开发一个demo项目。

《Kafka核心技术与实战》课程目录

开篇词I为什么要学习Kafka?

Kafka入门

  1. 消息引擎系统ABC
  2. —篇文章帯你快速搞定Kafka术语
  3. ApacheKafka真的只是消息引擎系统吗?
  4. 我应该如何选择Kafka版本?
  5. 聊聊Kafka的版本号

Kafka的基本使用

  1.  Kafka线上集群部署方案怎么做?
  2. 最最最重要的集群参数配置(上)
  3. 最最最重要的集群参数配置(下)

客户端实践及原理剖析

  1. 生产者消息分区机制原理剖析
  2. 生产者压缩算法面面观
  3. 无消息丢失配置怎么实现?
  4. 客户端都有哪些不常见但是很高级的功能?
  5. Java生产者是如何管理TCP连接的?
  6. 幂等生产者和事务生产者是一回事吗?
  7. 消费者组到底是什么?
  8. 揭开神秘的“位移主题”面纱
  9. 消费者组重平衡能避免吗?
  10. Kafka中位移提交那些事儿
  11. CommitFailedException 异常怎么处理?
  12. 多线程开发消费者实例
  13. Java消费者是如何管理TCP连接的?
  14. 消费者组消费进度监控都怎么实现?

深入Kafka内核

  1. Kafka备份机制详解
  2. 请求是怎么被处理的?
  3. 消费者组重平衡全流程解析
  4. 你一定不能错过的Kafka控制器
  5. 关于高水位和Leader Epoch的讨论

管理与监控

  1. 主题管理知多少?
  2. Kafka动态配置了解下?
  3. 怎么重设消费者组位移?
  4. 常见工具脚本大汇总
  5. KafkaAdminClient: Kafka的运维利器
  6. Kafka认证机制用哪家?
  7. 云环境下的授权该怎么做?
  8. 跨集群备份解决方案MirrorMaker
  9. 你应该怎么监控Kafka?
  10. 主流监控框架你知道多少?
  11. 调优Kafka你做到了吗?
  12. 从0搭建基于Kafka的企业级实时日志流处理平台

高级Kafka应用之流处理

  1. Kafka Streams与其他流处理平台的差异在哪?
  2. Kafka Streams DSL 开发实例
  3. Kafka Streams在金融领域的应用

 

猿人学banner宣传图

我的公众号:猿人学 Python 上会分享更多心得体会,敬请关注。

***版权申明:若没有特殊说明,文章皆是猿人学 yuanrenxue.con 原创,没有猿人学授权,请勿以任何形式转载。***

说点什么吧...