教程演示🔗
你会学到什么
-
使用 Spring Boot 和 Spring Cloud Stack 掌握微服务架构
-
使用 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
-
为 Rest API 的版本控制实施 Api 版本控制
-
使用 PostgreSQL 实现 Spring Data JPA
-
了解使用 Netflix Eureka 和 Spring Cloud 的服务注册和发现
-
使用 Spring Cloud Load Balancer 实现客户端负载均衡
-
使用 Spring Cloud Gateway 了解 Api Gateway 模式
-
使用 Spring Cloud Gateway 和 Resilience4j 实现断路器模式
-
使用 Spring Cloud Gateway 和 Redis 实现速率限制
-
使用 JWT 了解 Spring Security Oauth 2.0 和 OpenID 连接协议与 Keycloak 的身份验证和授权
-
使用Spring Boot Actuator、Micrometer、Prometheus和Grafana实现微服务监控
-
使用 ELK stack – Elasticsearch、Logstash 和 Kibana 了解日志聚合模式和可视化
-
通过 Spring Hateoas 了解在 Rest API 中使用 Hateoas
-
使用 Swagger v3 为 Restful API 文档实施 Open Api v3
-
使用 Thymeleaf 和 Bootstrap 作为基本的前端
-
通过使用 Reactive Spring、WebFlux、WebClient 和 Reactive Thymeleaf 响应式查询 Elasticsearch,了解响应式开发和异步流程
-
使用 Slf4J MDC、Spring Cloud Sleuth 和 Zipkin 学习分布式跟踪
-
了解每个服务数据库模式
-
了解在状态存储中使用 Kafka 流
-
使用 Twitter4J 从 Twitter 学习流推文
要求
-
Java知识
-
Spring框架基础知识
-
后端开发经验
描述
你好呀!我的名字是阿里盖伦勒。我在这里通过应用最佳实践来应对现实生活中的挑战,帮助您学习事件驱动的微服务架构。
在本课程中,您将专注于微服务的开发。在微服务的帮助下,您可以独立开发和部署您的应用程序组件。您还可以根据每个服务自身的资源需求轻松扩展服务,例如,您可以更好地扩展并创建需要更多请求的服务的更多实例。
在本课程中,您始终可以使用最新版本的 spring boot、spring cloud 和其他依赖项。请按照上一节的讲座查看更新版本所需的代码和配置更改。此外,如果您想在课程中使用字幕,您可以打开视频的字幕,因为所有讲座都已更新为手写字幕。我建议使用字幕,以便更容易理解讲座。
从整体应用程序迁移到微服务架构时,由于拥有分布式应用程序和系统,将会出现一些挑战。在本课程中,您将学习如何使用 Apache Kafka 的事件驱动架构 (EDA) 架构来应对这些挑战。
采用事件驱动架构;
- 您将真正解耦服务并创建弹性服务,因为服务与其他服务没有直接通信
- 您将在服务之间使用异步/非阻塞通信
- 您将使用事件/状态存储 (Kafka),并从服务中删除状态以获得更好的可扩展性
- Tanima: “这是我在 udemy 上过的最好的课程之一,讲师反应灵敏,在课程期间总是处理复杂的问题,非常感谢教授,我将永远感谢您的这门课程,并将密切关注在你的下一个课程发布上。”
您将使用最新的软件平台、技术、库和工具,遵循最佳实践,应用微服务模式并使用 Java、Spring boot、Spring cloud、Spring Security、Kafka 和 Elasticsearch 从头开始开发微服务架构。我们还将介绍使用 Kafka 作为事件存储的事件溯源和事件驱动服务。
您将要实施的微服务模式是:
- 使用 Spring Cloud Config 进行外部化配置
- 使用 Kafka 和弹性搜索的 CQRS
- 用于 Rest API 版本控制的 API 版本控制
- 使用 Spring Cloud 和 Netflix Eureka 进行服务注册和发现
- Api 网关与 Spring 云网关
- 使用 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 连接进行身份验证在具有 Spring Boot 安全性的微服务架构中得到广泛应用。
- Oliver Michels: “很棒的课程,涵盖了很多领域,即 Spring Boot、Kafka、Elastic、OAuth/Keycloak 等,并展示了所有这些部分如何在一个漂亮的微服务架构中组合在一起。”
您将关注的另一个重要主题是微服务的监控。您将使用 Spring boot actuator 和 Prometheus with Micrometer,后者可用于获取健康状况、运行线程数、请求数、响应时间和内存使用量等指标。您还将学习使用 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 相关的技术知识,尤其是与云计算相关的技术。其中包括像反应式编程、流媒体、Linux 操作系统、安全性、设计模式等等。所有信息都以简洁但可消化的形式提供,使您可以在最短的时间内拓宽自己的技能。非常感谢对材料、讲师参与、持续不断的投资协助和帮助学生。将推荐所有想要提高她/他的技能的人参加这门课程。 ”
更详细的课程进度信息,可以查看介绍视频和免费课程,如果您决定报名参加本课程,随时欢迎您在Q/A和消息中询问和讨论概念和实现细节部分。我将从头到尾指导您,帮助您顺利完成课程,并从本课程中获得尽可能多的知识和经验。
本课程适合谁:
- 一个想要掌握微服务架构应用模式与 Spring boot 和 Spring cloud 的人
- 一个想用Kafka学习事件驱动微服务的
- 喜欢动手实践的人
课程主题
课程先决条件
Java知识 Spring Framework基础知识 后端开发经验