NestJS 微服务:构建分布式作业引擎

NestJS Microservices: Build a Distributed Job Engine

通过使用gRPC、Pulsar、Kubernetes和AWS构建可扩展的分布式作业引擎,掌握NestJS微服务

学习内容

  • 使用 NestJS 微服务构建功能齐全的分布式作业引擎
  • 使用 Nx 构建可扩展的 monorepo 以实现高效的开发和依赖项管理
  • 实现 gRPC 作为传输层,以实现高性能、低延迟的通信
  • 使用 Apache Pulsar 进行分布式消息传递和可靠的作业处理
  • 公开 GraphQL API 以实现灵活的数据访问和交互
  • 使用 JWT 身份验证和仅限 HTTP 的 Cookie 保护微服务
  • 应用面向对象的设计原则,使代码保持模块化、可重用和可维护
  • 实施水平扩展以高效处理高工作负载
  • 使用 Nx 库和独立的 package.json 文件优化 Docker 化
  • 将 Prisma ORM 和 Drizzle ORM 与 PostgreSQL 结合使用,实现强大的数据库管理
  • 使用生产就绪的最佳实践将微服务部署到 Kubernetes
  • 使用自定义域和 SSL 加密设置生产级 AWS 部署
  • 获得设计、开发和部署实际 NestJS 微服务的实践经验

要求

  • JavaScript 或 TypeScript 的基本知识
  • 熟悉 Node.js 和后端开发概念
  • 了解 REST API(GraphQL 知识会有所帮助,但不是必需的)
  • 使用 PostgreSQL 等数据库的一些经验是有益的
  • 基本了解 Docker 和容器化概念
  • 熟悉基本的 NestJS 概念
  • 熟悉 Kubernetes 进行部署

描述

通过从头开始开发功能齐全的作业引擎,掌握使用 NestJS 构建可扩展的分布式微服务的技巧。本课程旨在以正确的方式教您 NestJS 微服务,涵盖从架构和设计到生产中的部署和扩展的所有内容。

首先,您将使用 NX 设置 monorepo,从而使您能够在单个代码库中高效管理多个服务。使用 gRPC 作为传输层,您将在服务之间实现高性能、低延迟的通信。该课程深入探讨了Apache Pulsar,这是一个强大的分布式消息传递系统,它允许我们将多个消费者添加到共享队列中并实现规模化。您还将公开 GraphQL API,提供一种灵活高效的方式来与微服务交互。

安全性是一个核心重点,您将使用安全的、仅限 HTTP 的 Cookie 实施基于 JWT 的身份验证。在整个课程中,一切都是使用面向对象的设计原则构建的,确保遵循 DRY(不要重复自己)原则的干净、模块化和可重用的代码库。这使得您的代码库在扩展时更易于维护。

您还将优化 Docker 设置,使用具有单独 package.json 文件的 Nx 库来更好地管理依赖项。水平扩展技术将确保您的服务能够有效地处理不断增加的工作负载。随着任务引擎的成熟,您将实施任务状态跟踪,从而允许您监控任务进度。

对于数据库管理,您将使用 PostgreSQL 的 Prisma ORM 和 Drizzle ORM,确保类型安全、迁移和优化查询。最后,您将所有内容部署到 Kubernetes,使用 AWS、自定义域和 SSL 加密将微服务投入生产。

在本课程结束时,您将拥有一个完全可作的分布式作业引擎,具有强大的状态跟踪功能,以及在实际生产环境中设计、开发和部署可扩展 NestJS 微服务的专业知识。

本课程适合谁:

  • 希望通过 Node.js 实现扩展的后端开发人员
  • 希望掌握 NestJS 微服务的后端开发人员
  • 有兴趣学习 gRPC 和 Apache Pulsar 以实现高性能通信和作业处理的软件工程师
  • 对使用 NestJS 构建实际生产级应用程序的开发人员
  • 任何希望获得 Prisma、Drizzle、Docker 和 GraphQL 等现代后端技术的实践经验的人
  • 那些希望提高设计可扩展、可维护和高效微服务架构的能力的人
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。