Tin mới nhất

Menu

Browsing "Older Posts"

Bài Viết Về Chủ Đề " Event-Driven "

Chia Sẻ Khóa Học Event-Driven Microservices - Spring Boot, Kafka Và Elastic [Update Tháng 1/2024] [Khóa 6446 A]

13 tháng 9 2024 / No Comments

Làm chủ kiến ​​trúc event-driven microservices với các pattern sử dụng Spring Boot, Spring Cloud, Kafka và Elasticsearch.

Những gì bạn sẽ học được:

  • ✓ Làm chủ Kiến trúc Microservices với Spring boot và Spring cloud stack.
  • ✓ Phát triển các Event-driven microservice với Apache Kafka.
  • ✓ Tìm hiểu về Containerization của microservices với Docker và Docker compose.
  • ✓ Tìm hiểu cơ bản về Kafka brokers, topics, partitions, producers, consumers, admin client, avro messaging, zookeper và schema registry.
  • ✓ Tìm hiểu cơ bản về Elasticsearch, index api và query api.
  • ✓ Triển khai các ứng dụng nhắn tin dựa trên Kafka với Spring Kafka.
  • ✓ Tìm hiểu về Elasticsearch indexing và query với Spring Data Elasticsearch.
  • ✓ Triển khai CQRS pattern với Kafka và Elasticsearch.
  • ✓ Triển khai Externalize configuration pattern với Spring Cloud Config.
  • ✓ Phát triển Rest API.
  • ✓ Triển khai API versioning cho versioning của các Rest API.
  • ✓ Triển khai Spring Data JPA với PostgreSQL.
  • ✓ Tìm hiểu về Service Registration và Discovery với Netflix Eureka và Spring cloud.
  • ✓ Triển khai Client side load balancing với Spring Cloud Load Balancer.
  • ✓ Tìm hiểu Api Gateway pattern với Spring Cloud Gateway.
  • ✓ Triển khai Circuit Breaker pattern với Spring Cloud Gateway và Resilience4j.
  • ✓ Triển khai Rate Limiting với Spring Cloud Gateway và Redis.
  • ✓ Tìm hiểu Authentication và Authorization với Spring Security Oauth 2.0 và OpenID connect protocols với Keycloak bằng JWT.
  • ✓ Triển khai Monitoring của microservices với Spring Boot Actuator, Micrometer, Prometheus và Grafana.
  • ✓ Tìm hiểu các Log aggregation pattern và visualization với ELK stack - Elasticsearch, Logstash và Kibana.
  • ✓ Hiểu cách sử dụng Hateoas trong các Rest API với Spring Hateoas.
  • ✓ Triển khai Open Api v3 cho Restful API documentation với Swagger v3.
  • ✓ Sử dụng Thymeleaf và Bootstrap cho một front-end cơ bản.
  • ✓ Tìm hiểu về Reactive development và asynchronous flow bằng cách truy vấn Elasticsearch reactively với Reactive Spring, WebFlux, WebClient và Reactive Thymeleaf.
  • ✓ Tìm hiểu về Distributed tracing với Slf4J MDC, Spring Cloud Sleuth và Zipkin.
  • ✓ Tìm hiểu Database per Service pattern.
  • ✓ Hiểu cách sử dụng Kafka streams với state store.
  • ✓ Tìm hiểu cách streaming tweets từ Twitter bằng Twitter4J.

Xin chào! Tôi ở đây để giúp bạn tìm hiểu kiến ​​trúc event-driven microservices bằng cách áp dụng các phương pháp hay nhất cho các thách thức thực tế.

Cập nhật quan trọng: Khóa học này sử dụng Twitter api làm source data. Twitter đang có kế hoạch thay đổi tài khoản twitter developer thành đăng ký trả phí. Tuy nhiên, điều này sẽ không ảnh hưởng đến khóa học vì tôi đã thêm một triển khai Mock Tweet để bạn không cần phải tạo Twitter developer account nếu nó được chuyển thành dịch vụ trả phí.

Trong khóa học này, bạn sẽ tập trung vào việc phát triển các microservice. Với sự trợ giúp của các microservice, bạn có thể tự phát triển và triển khai các application component của mình. Bạn cũng có thể dễ dàng mở rộng quy mô services theo nhu cầu tài nguyên riêng của từng service, ví dụ, bạn có thể scale tốt hơn và tạo nhiều instance của một service hơn yêu cầu nhiều request hơn.

Bạn luôn có thể sử dụng các phiên bản mới nhất cho Spring boot, Spring cloud và các Dependency khác trong khóa học này. Vui lòng chỉ cần theo dõi các bài giảng của phần cuối để xem code được yêu cầu và các thay đổi cấu hình cho các phiên bản cập nhật. 

Khi chuyển từ một ứng dụng monolith sang kiến ​​trúc microservices, một số thách thức sẽ phát sinh do có ứng dụng và hệ thống phân tán. Trong khóa học này, bạn sẽ học cách xử lý những thách thức này bằng event-driven architecture (EDA) với Apache Kafka.

Với Event-driven architecture:

  • ✓ Bạn sẽ thực sự tách biệt các service và tạo ra các service có khả năng phục hồi vì một service không có sự giao tiếp trực tiếp với các service khác.
  • ✓ Bạn sẽ sử dụng asynchronous/non-blocking communication giữa các service.
  • ✓ Bạn sẽ sử dụng một event/state store (Kafka) và remove state khỏi các service để có khả năng mở rộng tốt hơn.

Bạn sẽ phát triển một kiến ​​trúc microservice từ đầu bằng cách sử dụng các nền tảng phần mềm, công nghệ, thư viện và công cụ mới nhất, tuân theo các phương pháp hay nhất, áp dụng các microservices pattern và sử dụng Java, Spring boot, Spring cloud, Spring Security, Kafka và Elasticsearch. Chúng tôi cũng sẽ đề cập đến Event sourcing và các Event-driven service sử dụng Kafka làm event store.

Các microservices pattern mà bạn sẽ triển khai là:

  • ✓ Externalized configuration với Spring Cloud Config.
  • ✓ CQRS với Kafka và Elastic search.
  • ✓ Api versioning cho versioning của các Rest API.
  • ✓ Service Registration & Discovery với Spring Cloud và Netflix Eureka.
  • ✓ Api Gateway với Spring Cloud Gateway.
  • ✓ Circuit breaker với Spring Cloud Gateway và Resilience4j.
  • ✓ Rate limiting với Spring Cloud Gateway và Redis để sử dụng Redis làm Rate limiter.
  • ✓ Distributed tracing với SLF4J MDC, Spring Cloud Sleuth và Zipkin.
  • ✓ Log aggregation với ELK stack (Elasticsearch, Logstash và Kibana).
  • ✓ Client side load balancing với Spring Cloud Load Balancer.
  • ✓ Database per Service.
  • ✓ Nhắn tin giữa các microservice bằng Kafka.

Bạn cũng sẽ triển khai Spring Security Oauth 2.0 và OpenID connect protocol cho Authentication và Authorization bằng Keycloak và JWT. Việc sử dụng Oauth cho authorization của các service và OpenID connect cho authentication được sử dụng rộng rãi trong kiến ​​trúc microservices với Spring boot security.

Một chủ đề quan trọng khác mà bạn sẽ tập trung vào là monitoring microservices. Bạn sẽ sử dụng Spring boot actuator và Prometheus với Micrometer có thể được sử dụng để lấy các số liệu như health, số thread đang chạy, số request, response time và mức sử dụng bộ nhớ. Bạn cũng sẽ học cách sử dụng Grafana để tạo một dashboard đẹp mắt nhằm trực quan hóa các số liệu mà bạn thu được khi sử dụng Spring boot actuator và Prometheus.

Khi giới thiệu về event-driven microservices, bạn sẽ hiểu được những điều cơ bản về Apache Kafka bằng cách tìm hiểu Kafka topics, Kafka partitions, Kafka consumer và producer API, Kafka admin client và Avro messaging.

Để giao tiếp giữa các microservice, ngoài việc sử dụng Kafka messaging, tôi cũng sẽ giới thiệu Kafka Streams và chỉ cách sử dụng Kafka Streams để tạo một temporary state store với streaming data được tích lũy. Temporary data source này sau đó sẽ được một microservice khác sử dụng.

Để giao tiếp với các data store trong các microservice, tôi sẽ sử dụng các Spring Data dependency khác nhau, chẳng hạn như Spring Data JPA với PostgreSQL, Spring Data Elasticsearch và Spring Kafka.

Đối với Api documentation, tôi sẽ sử dụng Open Api 3 specification triển khai Swagger 3.0. Open Api sẽ tạo một RESTful interface cho API và giúp bạn dễ dàng phát triển và consume một Rest API.

Bạn cũng sẽ học cách sử dụng Hateoas (Hypermedia là Engine của Application State) trong một Rest Api với Spring Hateoas. Hateoas sẽ cung cấp liên kết đến các tài nguyên trên máy chủ và cập nhật REST API response bằng các liên kết này để tương tác với client một cách năng động. Điều này sẽ cho phép phát triển các Rest API cấp độ 3.

Ngoài ra còn có một phần reactive development trong khóa học này, phần này trình bày cách truy vấn elasticsearch reactively với Reactive Spring, WebFlux, WebClient và Reactive Thymeleaf. Trong phần này, bạn sẽ học cách sử dụng Spring Webflux và các Spring reactive component để tạo một asynchronous flow giữa các microservice.

Bạn sẽ sử dụng Spring boot và Spring cloud cùng với Docker để phát triển các microservice sẵn sàng cho đám mây. Docker là một nền tảng containerization và nó cho phép package các ứng dụng vào các container. Các container này sau đó có thể chạy trong bất kỳ môi trường nào mà docker đang chạy. Trong khóa học này, bạn sẽ tạo các docker image của các microservice mà bạn đã phát triển. Sau đó, sử dụng docker compose để chạy tất cả các container của microservices cùng nhau, cùng với các dependency khác như Kafka, Elasticsearch, Keycloak, Redis, Prometheus, Grafana và Zipkin. Cuối cùng, một lệnh 'docker-compose up' duy nhất sẽ đủ để chạy tất cả các kiến ​​trúc microservices cùng với các required dependency. Có các docker image này sẽ cho phép bạn triển khai ứng dụng của mình tới bất kỳ nhà cung cấp đám mây nào một cách dễ dàng.

Bạn sẽ làm theo một phương pháp thực hành và phát triển một dự án từ đầu, trong đó bạn sẽ có nhiều microservice được bao quanh bởi nhiều module để hoàn thành các nhiệm vụ cụ thể. Vì vậy, bạn sẽ cần phải tự tay làm trong khóa học này, nơi tôi sẽ hướng dẫn bạn từ đầu đến cuối. Bạn cũng sẽ tìm thấy các bài kiểm tra trắc nghiệm trong mỗi phần để kiểm tra tiến độ của mình trong suốt khóa học.

Vào cuối khóa học, bạn không chỉ hiểu được những thách thức thực tế của một ứng dụng phân tán với nhiều service và component mà còn có thể áp dụng các giải pháp cho những thách thức này.

Bạn có thể tải xuống mã nguồn trong từng bài giảng riêng biệt và chạy chúng dễ dàng bằng IDE hoặc docker.

Mục lục:

  • ✓ 01 - Giới thiệu về kiến ​​trúc microservices.
  • ✓ 02 - Thiết lập môi trường.
  • ✓ 03 - Service đầu tiên: twitter-to-kafka-service - Cách sử dụng Twitter4j & Kafka producers.
  • ✓ 04 - Externalizing configuration với Spring Cloud Config Server.
  • ✓ 05 - kafka-to-elastic-service: Cách sử dụng Kafka consumers và Elastic Index API.
  • ✓ 06 - Elastic query microservice: Rest API, versioning, Hateoas, Open Api, Elastic query.
  • ✓ 07 - Query web client microservice: Sử dụng REST Api, Webclient, Thymeleaf, Bootstrap.
  • ✓ 08 - Reactive version của elastic query service và web client: Sử dụng Reactive Spring.
  • ✓ 09 - Bảo mật services: Spring security OAuth2, OpenID connect, Keycloak và JWT.
  • ✓ 10 - Kafka streams với một microservice mới: Cách sử dụng Kafka streams state store.
  • ✓ 11 - Tạo Analytics service: Cách sử dụng Spring Data JPA với PostgreSQL.
  • ✓ 12 - Triển khai service discovery với Netflix Eureka và Spring Cloud: Spring Eureka.
  • ✓ 13 - Spring cloud Api Gateway với Resilience4J Circuit Breaker & Redis Rate Limiter.
  • ✓ 14 - Monitoring và visualisation với Spring boot actuator, Prometheus và Grafana.
  • ✓ 15 - Triển khai Distributed tracing và Log aggregation với visualisation by ELK.
  • ✓ 16 - Tích hợp Spring Sleuth và Zipkin cho Distributed tracing & Log aggregation.
  • ✓ 17 - Update Version: Cập nhật lên Spring boot, Spring cloud & và các dependency khác mới nhất.
  • ✓ 18 - Tiếp theo là gì?

Khóa học này dành cho ai:

  • ✓ Bất kỳ ai muốn làm chủ kiến ​​trúc microservices áp dụng các pattern với Spring boot và Spring cloud.
  • ✓ Bất kỳ ai muốn tìm hiểu về event-driven microservices với Kafka.
  • ✓ Bất kỳ ai thích học bằng cách thực hành.


NHẬN GET EBOOK TRÊN AMAZON THEO YÊU CẦU




Copyright Disclaimer:
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.
Tuyên bố miễn trừ bản quyền:
Trang web này không lưu trữ bất kỳ tệp nào trên máy chủ của nó. Chúng tôi chỉ lập chỉ mục và liên kết đến nội dung được cung cấp bởi các trang web khác. Vui lòng liên hệ với các nhà cung cấp nội dung để xóa nội dung bản quyền nếu có và gửi email cho chúng tôi, chúng tôi sẽ xóa các liên kết hoặc nội dung có liên quan ngay lập tức.