实用异步 Java
通过使用知名的库和技术,成为 Java 异步工作流的大师
讲师:Cosmin Ionita
双语IT资源独家Udemy付费课程,独家中英文字幕,配套资料齐全!
用不到1/10的价格,即可享受同样的高品质课程,且可以完全拥有,随时随地都可以任意观看和分享。
您将学到什么
- 理解为什么我们需要异步编程
- 了解如何设计异步应用程序
- 了解 Java 中异步原语的工作原理(Completable Future)
- 了解如何检查异步应用程序是否有效地使用线程
- 了解异步应用程序的权衡
- 使用异步库以异步方式访问数据库
- 构建端到端异步 REST API
- 了解如何监视线程池并检查它们是否正确使用资源
- 将本课程中学到的概念与现实世界的项目联系起来
探索相关主题
- 多线程
- 软件工程
- 发展
要求
- 需要基本的 Java 经验(OOP)
- 具备基本的 Java 多线程知识者优先
描述
简介
本课程是您熟练使用 Java 编写异步代码的最佳在线资源,通过学习使用 Completable Futures API、使用 Spring-Boot 在 REST API 中构建非阻塞工作流、异步从数据库获取数据以及学习监控线程池以查看它们是否在您的应用程序中正确使用。
本课程的目标是让您深入了解主要的异步概念(可以在许多其他语言中重复使用),这些概念在 Java 中得到应用和示范,Java 是许多大公司和全球超过 900 万开发人员使用的语言。
关于我自己
十年前,我在高中时写下了第一行代码。我很快就沉迷于使用 C# 和 Windows 窗体构建实用程序的简单性。
我跟随计算机科学大学的课程,在那里我成功地为与软件工程相关的任何知识(算法、数据结构、操作系统、多线程、分布式计算、网络和许多其他主题)奠定了基础知识,并通过获得并行和分布式系统硕士学位,完成了这段令人惊叹的 6 年学习之路,在那里我从头开始构建了一个针对运行 Spark 作业进行优化的自定义 Kubernetes Gang Scheduler。
目前,我是一名高级软件工程师,专注于基于 JVM 的大规模开发。我编写的代码被全世界数百万人使用。
我为什么要开设这门课程?
对于任何想要担任高级职位的软件工程师来说,拥有异步代码经验是必须的。我看到许多人很难理解以下事情:
-
为什么我的应用程序卡住了?我该如何调试它?
-
我怎样才能在不同的线程上运行此方法?
-
我如何知道我的异步应用程序是否有效地利用了资源?
即使我在这个领域有足够的大学背景,但对我来说,理解其中的一些事情仍然非常困难。
但幸运的是,经过多年使用线程、回调、线程池、反复试验、阅读大量分析会话和书籍文章,我终于深刻理解了这些关键概念,并在日常工作中正确使用它们。
出于这些原因,我认为建立一门课程来展示我对异步工作流的理解,肯定会帮助其他人节省时间,避免陷入我经历过的同样陷阱。
课程内容是什么?
本课程分为 5 个章节,每个章节都会教你如何在应用程序中应用异步代码的新角度:
-
第 1 章 – 异步编程的一般概念
-
在本章中,我们将学习异步编程的基础知识 – 我们所说的“异步”(通过一些非常酷的例子),我们将澄清一个常见的混淆 – 这是并行和异步之间的主要区别,我们还将了解异步程序与传统编程相比的权衡,因为我们还需要注意一些方面。
-
-
第 2 章 – 使用 Completable Future 进行 Java 异步编程
-
这是第一章,我们将通过学习 Completable Future API 来进行实践——它与传统 Future 有何不同,我们如何处理异常,以及如何将多个 Future 组合在一起来执行更复杂的场景。
-
最后,我们将构建一个异步交易机器人,将我们学到的所有知识应用到一个非常有趣的项目中。
-
-
第 3 章 – 使用 Spring-Boot 构建异步 REST API
-
在本章中,我们将转换方向并探索 Spring-Boot 框架,重点是构建异步代码(使用 @Async 注释),我们还将通过更改执行 @Async 注释方法的底层线程池来配置异步机制。
-
最后,我们将构建一个非常有趣的项目,这是一个完全异步的 REST API,根据用户提供的关键字从外部系统下载图像。
-
-
第 4 章 – 异步从数据库获取数据
-
数据访问是一个非常重要的方面,尤其是在异步应用程序中,其中流程需要端到端异步。异步处理请求是没有意义的,但以阻塞方式获取数据是没有意义的。
-
因此,在本章中,我们将探讨 MySQL 和 Redis 的非阻塞数据库客户端,这些客户端应在任何异步应用程序中使用,以正确构建数据访问工作流。
-
最后,我给你留下了一个练习来探索 Mongo DB 的异步数据访问过程,这将非常有趣。
-
-
第 5 章 – 监控异步应用程序中的线程池
-
在最后一章中,我将向您展示如何使用 Prometheus 和 Grafana(一个著名的开源监控堆栈)正确监控线程池。
-
我们首先了解监控线程池的重要性,然后用 Docker 构建和配置监控堆栈,最后通过检测我们的 Spring-Boot 应用程序以 Prometheus 格式公开指标。
-
这门课程的要求是什么?
-
基本 Java 知识(包括面向对象编程)
-
基本 Java 多线程概念是一个加分项,它们将帮助你更快地掌握本课程的概念
-
您选择的 IDE,最好是 IntelliJ Idea 社区版,但您可以使用任何可以运行纯 Java 代码的 IDE
-
愿意学习且思想开放
感谢您花时间浏览此描述,我期待在第一堂课中见到您!
本课程适合哪些人:
- 初级和中级 Java 开发人员
- 高级 Java 开发人员
- 计算机科学专业的学生
- 任何想要熟练使用异步代码的开发人员
如果你有能力,请务必支持课程的原创作者,这是他们应得的报酬!
本站收取的费用,仅用来维持网站正常运行的必要支出,从本站下载任何内容,说明你已经知晓并同意此条款。