事件驱动的微服务:Spring Boot、Kafka 和 Elastic

Event-Driven Microservices: Spring Boot, Kafka and Elastic

使用 Spring boot、Spring cloud、Kafka 和 Elasticsearch 掌握具有模式的事件驱动微服务架构

你将学到什么

  • 使用 Spring boot 和 Spring 云堆栈掌握微服务架构
  • 使用 Apache Kafka 开发事件驱动的微服务
  • 了解使用 Docker 和 Docker compose 进行微服务容器化
  • 了解 Kafka 代理、主题、分区、生产者、消费者、管理客户端、avro 消息传递、zookeper 和模式注册表的基础知识
  • 学习 Elasticsearch、索引 api 和查询 api 的基础知识
  • 使用 Spring Kafka 实现基于 Kafka 的消息传递应用程序
  • 使用 Spring Data Elasticsearch 了解 Elasticsearch 索引和查询
  • 使用 Kafka 和 Elasticsearch 实施 CQRS 模式
  • 使用 Spring Cloud Config 实现外部化配置模式
  • 开发Rest API
  • 实施 API 版本控制以实现 Rest API 的版本控制
  • 使用 PostgreSQL 实现 Spring Data JPA
  • 了解 Netflix Eureka 和 Spring Cloud 的服务注册和发现
  • 使用 Spring Cloud Load Balancer 实现客户端负载均衡
  • 使用 Spring Cloud Gateway 了解 Api 网关模式
  • 使用 Spring Cloud Gateway 和 Resilience4j 实现断路器模式
  • 使用 Spring Cloud Gateway 和 Redis 实施速率限制
  • 了解 Spring Security Oauth 2.0 的身份验证和授权以及 OpenID 使用 JWT 与 Keycloak 连接协议
  • 使用 Spring Boot Actuator、Micrometer、Prometheus 和 Grafana 实现微服务监控
  • 使用 ELK 堆栈了解日志聚合模式和可视化 – Elasticsearch、Logstash 和 Kibana
  • 了解在 Rest API 中使用 Hateoas 和 Spring Hateoas
  • 使用 Swagger v3 实施 Open Api v3 以获取 Restful API 文档
  • 使用 Thymeleaf 和 Bootstrap 构建基本前端
  • 通过使用 Reactive Spring、WebFlux、WebClient 和 Reactive Thymeleaf 响应式查询 Elasticsearch,了解响应式开发和异步流程
  • 使用 Slf4J MDC、Spring Cloud Sleuth 和 Zipkin 学习分布式跟踪
  • 了解每服务数据库模式
  • 了解将 Kafka 流与状态存储结合使用
  • 使用 Twitter4J 从 Twitter 学习流式推文

要求

  • Java知识
  • Spring框架基础知识
  • 有后端开发经验

描述

你好呀!我叫阿里·盖伦勒。我来这里是为了通过应用最佳实践来应对现实生活中的挑战,帮助您学习事件驱动的微服务架构。

重要更新:本课程使用 Twitter api 作为源数据。Twitter正计划将Twitter开发者账户改为付费订阅。不过这不会影响课程,因为我已经添加了模拟推文实现,这样如果将其转变为付费服务,您将不需要创建 Twitter 开发者帐户。

在本课程中,您将重点关注微服务的开发。借助微服务,您可以独立开发和部署应用程序组件。您还可以根据每个服务自身的资源需求轻松扩展服务,例如,您可以更好地扩展并创建需要更多请求的服务的更多实例。

在本课程中,您始终可以使用 Spring Boot、Spring Cloud 和其他依赖项的最新版本。请按照上一节的讲座查看更新版本所需的代码和配置更改。此外,如果您想在课程期间使用字幕,您可以打开视频上的字幕,因为所有讲座都会使用手写字幕进行更新。我建议使用字幕,以便更容易跟上讲座。

当从整体应用程序迁移到微服务架构时,由于拥有分布式应用程序和系统,将会出现一些挑战。在本课程中,您将学习如何使用事件驱动架构 (EDA) 架构和 Apache Kafka 来应对这些挑战。

采用事件驱动架构;

  • 您将真正解耦服务并创建弹性服务,因为服务与其他服务没有直接通信
  • 您将在服务之间使用异步/非阻塞通信
  • 您将使用事件/状态存储 (Kafka),并从服务中删除状态以获得更好的可扩展性
  • Tanima: “这是我在 udemy 上过的最好的课程之一,讲师反应超级灵敏,在课程中总是处理复杂的问题,非常感谢教授,我将永远感谢您的这门课程,并将密切关注在您的下一个课程版本中。”

您将使用最新的软件平台、技术、库和工具,遵循最佳实践,应用微服务模式并使用 Java、Spring boot、Spring cloud、Spring Security、Kafka 和 Elasticsearch,从头开始开发微服务架构。我们还将介绍使用 Kafka 作为事件存储的事件源和事件驱动服务。

您将实施的微服务模式是:

  • 使用 Spring Cloud Config 进行外部化配置
  • CQRS 与 Kafka 和 Elastic 搜索
  • 用于 Rest API 版本控制的 API 版本控制
  • 使用 Spring Cloud 和 Netflix Eureka 进行服务注册和发现
  • Api 网关与 Spring Cloud Gateway
  • 使用 Spring Cloud Gateway 和 Resilience4j 的断路器
  • 使用 Spring Cloud Gateway 和 Redis 进行速率限制,以使用 Redis 作为速率限制器
  • 使用 SLF4J MDC、Spring Cloud Sleuth 和 Zipkin 进行分布式跟踪
  • 使用 ELK 堆栈进行日志聚合(Elasticsearch、Logstash 和 Kibana)
  • 使用 Spring Cloud Load Balancer 进行客户端负载平衡
  • 每个服务的数据库
  • 使用 Kafka 在微服务之间进行消息传递

您还将使用 Keycloak 和 JWT 实现 Spring Security Oauth 2.0 和 OpenID 连接协议,以进行身份​​验证和授权。使用 Oauth 进行服务授权和 OpenID connect 进行身份验证广泛应用于具有 Spring boot 安全性的微服务架构中。

  • Oliver Michels: “令人惊叹的课程,涵盖了很多基础知识,即 Spring Boot、Kafka、Elastic、OAuth/Keycloak 等,并展示了所有这些部分如何在一个漂亮的微服务架构中组合在一起。”

您将关注的另一个重要主题是微服务的监控。您将使用 Spring boot Actuator 和带有 Micrometer 的 Prometheus,它们可用于获取健康状况、运行线程数、请求数、响应时间和内存使用量等指标。您还将学习使用 Grafana 创建一个漂亮的仪表板,以可视化使用 Spring boot Actuator 和 Prometheus 获得的指标。

在介绍事件驱动的微服务时,您将通过涵盖 Kafka 主题、Kafka 分区、Kafka 消费者和生产者 API、Kafka 管理客户端和 Avro 消息传递来了解 Apache Kafka 的基础知识。

  • Emre Demir: “这不仅仅是一个软件教程。它是一门高级计算机工程课程。示例和描述都非常好。全栈和后端开发人员必须学习。”

为了在微服务之间进行通信,除了使用 Kafka 消息传递之外,我还将介绍 Kafka Streams 并展示如何使用 Kafka Streams 使用累积的流数据创建临时状态存储。然后,另一个微服务将使用该临时数据源。

为了与微服务中的数据存储进行通信,我将使用不同的 Spring Data 依赖项,例如带有 PostgreSQL 的 Spring Data JPA、Spring Data Elasticsearch 和 Spring Kafka。

对于 Api 文档,我将使用实现 Swagger 3.0 的 Open Api 3 规范。Open Api 将为 API 创建 RESTful 接口,帮助您轻松开发和使用 Rest API。

您还将学习如何在 Spring Hateoas 的 Rest Api 中使用 Hateoas(超媒体作为应用程序状态引擎)。Hateoas 将提供服务器上资源的链接,并使用这些链接更新 REST API 响应以与客户端动态交互。这将使开发 3 级 Rest API 成为可能。

  • Sidhartha Mallik: “这门课程切中要点,适合各个级别,强烈推荐”

本课程还有一个反应式开发部分,演示使用 Reactive Spring、WebFlux、WebClient 和 Reactive Thymeleaf 反应式查询 elasticsearch。在本节中,您将学习如何使用 Spring Webflux 和 Spring 反应式组件在微服务之间创建异步流。

您将使用 Spring boot 和 Spring cloud 以及 Docker 来开发云就绪微服务。Docker 是一个容器化平台,它可以将应用程序打包到容器中。这些容器稍后可以在 docker 运行的任何环境中运行。在本课程中,您将创建您开发的微服务的 docker 映像。然后使用 docker compose 将微服务的所有容器以及其他依赖项(例如 Kafka、Elasticsearch、Keycloak、Redis、Prometheus、Grafana 和 Zipkin)一起运行。最后,单个“docker-compose up”命令就足以运行所有微服务架构以及所需的依赖项。拥有这些 Docker 镜像将使您能够轻松地将应用程序部署到任何云供应商。

  • Mohammed O. Tillawy: “课程很棒,但是要做好准备,非常紧张,而且信息量很大,需要专注和耐心。 ”

您将遵循实践方法并从头开始开发一个项目,其中您将拥有多个由多个模块包围的微服务来完成特定任务。因此,您需要亲自参与本课程,我将从头到尾指导您。您还可以在每个部分找到多项选择测验,以检查您在整个课程中的进度。

在课程结束时,您不仅将了解具有多个服务和组件的分布式应用程序的现实挑战,而且您将能够应用解决方案来应对这些挑战。

您可以单独下载每个讲座中的源代码,并使用 IDE 或 docker 轻松运行它们。

  • Ido Charar: “ Ali Gelenler 的这门课程非常出色。它不仅仅是关于 Spring Cloud 与 kafka 和 elastic。本课程为您提供更多有关 Spring Cloud(特别是 Spring Cloud)和一般云计算相关技术的知识。其中包括诸如此类的技术反应式编程、流媒体、Linux 操作系统、安全性、设计模式等等。所有信息都以简洁但易于理解的形式给出,这使您可以在最短的时间内扩展您的技能。非常感谢对材料的投资、讲师的参与、持续的学习为学生提供帮助和帮助。建议每个想要提高技能的人都参加这门课程。 ”

有关本课程进展的更多详细信息,您可以查看介绍视频和免费课程,如果您决定参加本课程,随时欢迎您在 Q/A 和消息上询问和讨论概念和实现细节部分。我将从头到尾指导您,帮助您成功完成课程并从本课程中获得尽可能多的知识和经验。

  • Shantanu Srivastava: “我专门为了学习 Apache Kafka 而开设了这门课程,在观看了介绍视频后,我发现这门课程将涵盖作为 Spring 开发人员需要了解的所有内容。从 API 网关和服务发现,到日志转发和弹性等等。太棒了!! ”

本课程适合谁:

  • 想要掌握 Spring boot 和 Spring cloud 的微服务架构应用模式的人
  • 想要使用 Kafka 学习事件驱动的微服务的人
  • 喜欢通过实践方法学习的人
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。