Go进阶 · 分布式爬虫实战

Go进阶 · 分布式爬虫实战 / 构建企业级项目,进阶Go高级工程师

郑建勋 Go语言技术专家,《Go语言底层原理剖析》作者
  • 课程目录
  • 课程介绍
  • 在线阅读:开篇词|聚沙成塔,构建高性能、分布式爬虫项目

    你好,我是郑建勋。欢迎跟我一起学习 Go 语言,踏上搭建高并发、分布式、微服务爬虫项目的征程。

  • 01|知识回顾:Go基础知识你真的掌握了吗?

    这节课,我们一起来梳理一下Go语言的基础知识,让你能够查漏补缺,具备进一步学习的理论基础。

  • 02|内有乾坤:Go语言六大基础知识体系

    这节课,我们来讲解语法特性、并发编程、项目组织、工具与库这四部分的内容。

  • 03|进阶路线:如何深入学习Go语言?

    这节课,我们来谈谈如何完成Go语言的进阶学习。这里面的学习方法适用于任何复杂的学科,它可以指导你更好地完成整个课程的学习。

  • 04|敏捷之道:大型Go项目的开发流程是怎样的?

    高效研发流程的最佳实践是怎样的?针对具体的项目又应该选择怎样的研发流程?接下来两节课,我们来看看大型互联网产品的开发流程。

  • 05|全局视野:洞悉项目开发流程与规范

    这节课,我们继续看看大型互联网产品开发流程的后面五个阶段:研发实现阶段、测试阶段、上线部署阶段、运维阶段和运营阶段。

  • 06|免费的宝库: 什么是网络爬虫?

    网络爬虫合法吗?这一领域需要掌握哪一些知识?基于爬虫可以构建哪些有用的产品?这节课,我们就来深入讨论一下网络爬虫这个领域。

  • 07|冰川之下:深入Go高并发网络模型

    很多人认为,Go语言是开发网络服务的极佳选择。这节课,我们就深入看看这背后的道理是什么。

  • 08|高性能设计:自顶向下的高性能Go程序设计与优化

    这节课,我会带你构建起一种分层的分析范式,并通过它对问题进行分层抽象,抽丝剥茧,将问题逐个击破。

  • 09|破解性能谜题:性能优化的五层境界

    这节课,我们来分析一下影响高性能程序的底层基石:代码实施、操作系统与硬件。分析如何在这些层面进行设计和调优,最终实现高性能的目标。

  • 10|微服务设计:微服务架构与演进

    这节课,我们来拆解一下在构建微服务架构的过程中,我们面临的挑战以及需要具备的技术,让你对于微服务架构有更深入的理解。

  • 11|微服务挑战:微服务治理体系与实践

    这节课,我们来分析一下微服务遇到的挑战,一起来看看应对这些挑战的最佳实践,了解复杂微服务架构的运作模式。

  • 12|分布式系统设计:数据一致性与故障容错的纠葛

    这节课,我们来看看系统为什么必然会面临数据一致性问题,又怎么在实践中解决这类问题。

  • 13|智慧之火:详解分布式容错共识算法

    Raft在现代分布式系统中有着重要的地位,K8s和课程中用到的etcd组件底层都采用了Raft算法。这节课,我就以Raft算法为例讲解容错共识算法是如何实现数据的一致性与可用性的。

  • 14|谋定而动:爬虫项目需求分析与架构设计

    这节课,我们从需求分析出发,来反推一下爬虫系统的功能和架构。

  • 15|众人拾柴:高效团队的Go编码规范

    这节课我们来看看,一个好的团队需要遵守怎样的编程规范。

  • 16|网络爬虫: 一次HTTP请求的魔幻旅途

    下面两节课,我会带着你从一个最简单的HTTP请求入手,一步步理解请求背后发生的故事。

  • 17|巨人的肩膀:HTTP协议与Go标准库原理

    这节课,我们来看看当数据包到达对端服务器之后,操作系统和硬件会如何处理数据包。

  • 18|依赖管理:Go Module 用法与原理

    Go Modules让世界各地的开发者能够始终得到完全相同的代码,而不管它被构建了多少次,从何处获取及由谁获取。

  • 19|从正则表达式到CSS选择器:4种网页文本处理手段

    从这节课开始,我们正式进入爬虫项目的实战环节。

  • 20|面向组合:接口的使用场景与底层原理

    这节课,让我们来看一看另一种可以构建大规模程序的技术:接口。

  • 21|采集引擎:实战接口抽象与模拟浏览器访问

    这一节课,让我们在爬虫程序中实战接口,对采集引擎完成接口抽象。

  • 22|优雅地离场: Context超时控制与原理

    Context的作用是什么?应该如何去使用它?Context的最佳实践又是怎样的?

  • 23|偷梁换柱:为爬虫安上代理的翅膀

    这节课,我们来看一看各种类型代理的区别和使用方式,并在代码中实现代理。

  • 24|日志处理:日志规范与最佳实践

    运行中的程序就像一个黑盒,好在日志为我们记录了系统在不同时刻的运行状态。

  • 25 | 运筹帷幄: 协程的运行机制与调度器原理

    这节课让我们来深入看看协程的运行机制,以及调度器是如何实现灵巧调度的。

  • 26|高并发爬虫:模型、控制与冲突检测

    这节课,我们来看看一些富有表现力的高并发模型。

  • 27|掘地三尺:实战深度与广度优先搜索算法

    这节课让我们回到项目中来,为爬虫项目构建高并发的模型。

  • 28|调度引擎:负载均衡与调度器实战

    这节课,我们来实战任务调度的高并发模型,使资源得到充分的利用。

  • 29|细节决定成败:切片与哈希表的陷阱与原理

    这节课,让我们来看一看切片与哈希表的原理。

  • 30|辅助任务管理:任务优先级、去重与失败处理

    这节课,让我们给系统加入一些辅助功能,把爬虫流程变得更完善一些。这些功能包括:爬虫最大深度、请求不重复、优先队列、以及随机的User-Agent。

  • 31|规则引擎:自定义爬虫处理规则

    这一节课,我们重点来看看如何更合理地设置爬虫任务规则。

  • 32|存储引擎:数据清洗与存储

    这节课,我们一起写一个存储引擎,用它来处理数据的存储问题。

  • 33|固若金汤:限速器与错误处理

    我们这节课要给项目增加一个重要的功能:限速器。同时,我们还会介绍在Go中进行错误处理的最佳实践。

  • 34|服务注册与监听:Worker节点与etcd交互

    这节课,让我们将Worker节点变为一个支持GRPC与HTTP协议访问的服务,让它最终可以被Master服务和外部服务直接访问。

  • 35|未雨绸缪:怎样通过静态与动态代码扫描保证代码质量?

    这节课让我们继续优化代码,让程序可配置化。然后通过静态与动态的代码扫描发现程序中存在的问题,让代码变得更加优雅。

  • 36|测试的艺术:依赖注入、表格测试与压力测试

    这节课,我们一起来看几个在Go中进行代码测试的核心技术:单元测试、压力测试与基准测试。它们共同保证了代码的准确性、可靠性与高效性。

  • 37|工具背后的工具:从代码覆盖率到模糊测试

    什么样的代码才是高质量的代码?代码覆盖率一定是重要的指标之一。

  • 38|高级调试:怎样利用Delve调试复杂的程序问题?

    这节课,我们来看看怎么合理地使用调试器让开发事半功倍。

  • 39|性能分析利器:深入pprof与trace工具

    这节课,我们来学习分析Go程序的利器:pprof和trace。

  • 40|资源调度:深入内存管理与垃圾回收

    合理安排、组织、管理、释放内存是构建高效程序的基础。

  • 41|线上综合案例:节约线上千台容器的性能分析实战

    这节课,我们一起来回顾分析线上的Go Web程序的性能瓶颈的整个过程,看看最终如何节约上千台容器。

  • 42|他山之石:etcd架构之美

    这节课,我们来聊一聊我们将在分布式项目中使用的重要中间件:etcd。

  • 43|分布式协调:etcd读写、MVCC原理与监听机制

    这节课,我们重点来看看etcd的读写流程,以及它的两个重要特性:MVCC原理和监听机制。

  • 44|一个程序多种功能:构建子命令与flags

    这节课,让我们打开分布式开发的大门,一起看看如何开发Master服务,实现任务的调度与故障容错。

  • 45|Master高可用:怎样借助etcd实现服务选主?

    这一节课,让我们接着实现分布式Master的核心功能:选主。

  • 46|Master任务调度:服务发现与资源管理

    这一节课,我们继续深入Master的开发,实现一下Master的服务发现与资源的管理。

  • 47|故障容错:如何在Worker崩溃时进行重新调度?

    这一节课,让我们更进一步优化资源的分配。

  • 48 | 完善核心能力:Master请求转发与Worker资源管理

    这节课,让我们继续优化Master服务,实现Master请求转发和并发情况下的资源保护,同时实现Worker对分配资源的监听。

  • 49 | 服务治理:如何进行限流、熔断与认证?

    在大规模微服务集群中,为了保证微服务集群正常运行,还需要添加许多重要的功能,包括限流、熔断、认证与鉴权。

  • 50|不可阻挡的容器化:Docker核心技术与原理

    这节课,我们来看看容器化技术,并利用Docker将我们的程序打包为容器。

  • 51 | 多容器部署:如何利用 Docker Compose快速搭建本地爬虫环境?

    这节课,我们一起来学习如何使用 Docker Compose 来部署多个容器。

  • 52 | 容器海洋中的舵手:Kubernetes工作机制

    这节课,让我们来看看Kubernetes的基本原理。

  • 53|容器化实战:怎样搭建K8s爬虫集群?

    这节课让我们把爬虫项目相关的微服务部署到 Kubernetes 中。

  • 特别放送|Go泛型:用法、原理与最佳实践

    经过了多年的设计,我们正式迎来了 Go1.18 泛型。这节课就让我们来看一看泛型的几个重要问题。

  • 特别放送|回头看:如何更好地组织代码?

    这节课,让我们重新来思考一下如何更好地组织代码。

  • 结束语|登高望远,迈向新的高峰

    愿你能找到适合自己的人生之路,在新的一年里更上一层楼。

  • 期末测试 | 来赴一场满分之约吧~

    来赴一场满分之约吧~

58讲

专栏交流群


你将获得

  • 高效的编码规范与研发工具
  • 深入Go语法背后的底层机制
  • 高性能与可扩展的程序设计方法
  • 复杂线上案例的全方位分析
  • 大规模分布式系统的架构之道

讲师介绍

此外,作者还具有丰富的教育经验,曾作为 51CTO 高级讲师,帮助了上百位同学从 0 到 1 用 Go 语言搭建出完整的项目,完成了职场上的进阶。他也为华为特训营、联想超级课等企业内训项目提供了培训和技术支持。2022年,开始于B站、博客连载Go语言入门课程:《Go语言开挂入门之旅》。


课程介绍

过去的十多年间,互联网行业迅猛发展,大数据、大规模集群计算、复杂的网络环境……各种新的挑战让人应接不暇。面对这些问题,一些早已发展成熟的语言显示出些许笨重和疲态,也就是在这一语境下,Go语言应运而生。

Go语言被称作是“云计算时代的 C 语言”,它专注于软件开发过程本身,简洁、易上手,且天生支持高并发编程。因此,也在众多编程语言中日益显示出其竞争力,市场需求有增无减。

然而,就是在这个崭新的赛道上,想要进阶成为 Go 高级工程师也并非易事。你可能有过这样的困惑:

  • 疲于应付需求,程序缺乏设计,代码也不规范,最终导致程序越来越难扩展和维护;
  • 不懂Go语法背后的运行机制,也不知道如何提升,无法解决复杂的系统问题;
  • 难以跳出开发,从上层视角思考系统的技术选型与架构设计;
  • 没有大规模云原生、分布式系统、微服务集群的实战经验,且缺乏学习路径。

为了解决这些问题,我们请到了深耕 Go 领域的郑建勋老师。他有着丰富的大规模云原生、分布式、微服务集群实战经验。

这门课程,他会把零碎的知识点串联起来,形成 Go 语言和系统设计的完整知识体系与方法论。然后理论融合实践,带你一起完成一个具备扩展性、高并发、分布式、微服务的复杂系统:

课程特色

课程主要有五大特色。

特色一:在“玩”中学,爬虫为基座

专栏以爬虫项目贯穿始终,从需求拆解和架构设计开始,带你独立完成能够支撑海量爬虫任务的高并发系统、具有故障容错能力的分布式系统、具备可扩展性和领域驱动的微服务系统。

特色二:谋定而动,写出“好”代码

专栏不只是讲解如何写代码,还会给出一流团队的编码规范与扫描工具。让我们摆脱过去的思维定势,摆脱疲于应付需求的现状,写出简洁、高效、健壮和可扩展的代码。

特色三:“深”入原理,理论结合实践

专栏在项目开发过程中,会融入底层原理知识,结合实践告诉你为什么代码要这样写,它背后的机制是怎样的。让你不仅知其然,也能够知其所以然。

特色四:硬核实战,“调”试复杂问题

专栏会为你总结出系统的性能分析方法论,并结合实战案例,手把手教你调试代码,定位线上复杂问题。并有节约了线上千台容器的性能分析实战案例。

特色五:不畏浮云遮望眼,掌“控”更大规模系统

此外,专栏还会跳出开发单一程序的狭隘视角,为你系统介绍大型互联网产品的整个生命周期。介绍大规模微服务集群的典型架构,深入探讨微服务协议、架构、治理等问题。


课程目录


适合人群

  • 初学者与进阶学者,掌握了基本语法或完成了简单项目,渴望进一步提升Go语言与项目技能。
  • 希望收获大型Go项目完整开发流程经验的开发者和面试者,也可能是学生和面试者,希望能够理论结合实际,更加从容地参加面试,冲击更高的薪资。
  • 跨语言 Python、 PHP 或者 Java 希望转 Go 的开发者,之前有项目经验,但是不了解 Go 语言的生态、工具、开发模式,希望快速掌握 Go 语言项目开发。
  • 有实际爬虫需求的企业开发者,希望直接使用本课程中交付的项目。

订阅须知

随机推荐

狮王小狮王儿童氟防蛀牙膏 20g适合入手吗?独家揭秘评测?

狮王小狮王儿童氟防蛀牙膏 20g使用怎么样?新手小白评测报告?

雀巢超启能恩奶粉3段760g*4罐评测值得买吗?来看看买家评测!

卡诗元气姜粉瓶生姜洗发水250ml评测数据如何?深度爆料评测?

卡诗元气姜粉瓶生姜洗发水250ml值得买吗?老司机揭秘解说!

追致手持小风扇「2024新款」珍珠白分享一下使用心得?独家揭秘评...