Các mẫu giao dịch phân tán dưới góc nhìn MSA được chia sẻ bởi người phỏng vấn Kakao

Khóa học tập trung vào thực hành về kỹ thuật quản lý giao dịch SAGA để duy trì tính nhất quán của dữ liệu trong môi trường phân tán. Bạn sẽ xây dựng 3 microservices bằng Spring Boot và Docker, đồng thời triển khai hai mô hình Orchestration và Choreography với Kafka và MySQL. Thông qua khóa học này, bạn có thể nắm vững các khái niệm cốt lõi có thể áp dụng ngay vào thực tế như nguyên lý hoạt động của giao dịch phân tán, thiết kế giao dịch bù (compensating transaction) và xử lý phục hồi sau sự cố.

(4.9) 23 đánh giá

535 học viên

Độ khó Cơ bản

Thời gian Không giới hạn

Java
Java
Spring
Spring
MySQL
MySQL
Spring Boot
Spring Boot
MSA
MSA
Java
Java
Spring
Spring
MySQL
MySQL
Spring Boot
Spring Boot
MSA
MSA

Đánh giá từ những học viên đầu tiên

Đánh giá từ những học viên đầu tiên

4.9

5.0

파이리이2

100% đã tham gia

Đây là một thời gian tuyệt vời để học về distributed transaction!

5.0

keny

92% đã tham gia

Cá nhân tôi nghĩ đây có thể là một trong những khóa học hữu ích nhất trên Inflearn. Nhờ đó mà tôi có thể học được những nội dung thực sự bổ ích. Cảm ơn bạn.

5.0

개발에 미친자

92% đã tham gia

Tôi đã xem khóa học rất hay. Ban đầu việc anh chỉ ra thực sự rất nhiều sơ đồ trong khi giải thích kiến trúc tổng thể và những giải thích theo đó thật sự rất ưng ý, và những kiến thức có thể thiếu sót cũng như các khái niệm cần được tổng hợp đều có thể xác nhận thông qua file tóm tắt bài giảng riêng biệt. Tùy theo nhu cầu, script của Inflearn cũng rất hữu ích. Ngoài ra, quá trình ôn tập cũng được giải thích lại từng cái một, những câu chuyện thực tế và quan điểm từ góc độ thực tiễn cũng rất bổ ích. Tôi đã xem rất hay. Cảm ơn anh.

Bạn sẽ nhận được điều này sau khi học.

  • Tiết lộ bí quyết thiết kế giao dịch phân tán bền bỉ trước mọi sự cố

  • Mô hình Orchestration và Choreography, khi nào và dùng như thế nào trong thực tế?

  • Triển khai giao dịch SAGA dựa trên sự kiện thời gian thực với Kafka

  • Kiến trúc giao dịch bù trừ ổn định hoàn thiện bằng Spring Boot

  • Thực hành giao dịch microservices tự xây dựng với Docker

Làm thế nào để quản lý ACID trong môi trường MSA nhỉ?? 🤔

  • Nội dung dưới đây là nội dung cuộc hội thoại thực tế.

😁 Người phỏng vấn Kakao (Nhà phát triển) : Này XX (Hong), sẽ rất tốt nếu em tìm hiểu về giao dịch phân tán (Distributed Transaction) đấy. Em có biết về nó không??

😄 Hong : Ý anh là các khái niệm như transaction cục bộ hay transaction đảm bảo đúng không??

😁 Người phỏng vấn Kakao (Nhà phát triển) : Ừ, ý tôi là mẫu SAGA đó. Khi làm người phỏng vấn, tôi luôn hỏi về điều này nhưng có rất nhiều người không biết, nên nhớ đến cậu tôi mới hỏi đấy

😄 Hong : Tôi có nghe qua rồi, nhưng tôi chưa triển khai đến mức độ cốt lõi (core level). Tôi chỉ mới biết về khái niệm chứ chưa đi sâu vào khía cạnh Database per Service như cách gọi thông thường

😁 Người phỏng vấn Kakao (Nhà phát triển) : Vậy thì tôi sẽ tổng hợp nội dung liên quan đến chủ đề này rồi báo cho bạn nhé. Chúng ta hãy cùng thực hiện và thử tìm hiểu thông qua các bài giảng liên quan.

😄 Hong : Hahaha tuyệt quá, vậy sau này nếu mình ứng tuyển vào Kakao thì hời rồi ㅋㅋ Cùng bắt đầu thôi nào.

Trong môi trường MSA, bạn thực hiện quan điểm ACID như thế nào vậy?? 🤔

Nếu thực hiện quan điểm Database per Service trong mối quan hệ giữa vô số ứng dụng dịch vụ, bạn làm thế nào để đảm bảo quản lý trạng thái cho các tác vụ và Transaction tương ứng trong tình huống này??

Câu trả lời nằm ở mô hình SAGA. Để thực hiện và xử lý một tác vụ, cần phải giao tiếp với rất nhiều dịch vụ và trong quá trình đó, vô số giao dịch (transaction) sẽ phát sinh. Với quan điểm mỗi dịch vụ đều có cơ sở dữ liệu riêng, một tác vụ sẽ được thực hiện thông qua mô hình thực thi các giao dịch cục bộ (local transaction) và thực hiện các giao dịch bù đắp (compensation transaction) đối với các tình huống lỗi. Hy vọng rằng thông qua bài giảng này, bạn sẽ có được cái nhìn sâu sắc về cách triển khai các chức năng giao dịch phân tán như vậy. 🚀

Đặc điểm của bài giảng này

📌 Khóa học được xây dựng dựa trên câu hỏi phỏng vấn và bí quyết thực tế từ người phỏng vấn (nhà phát triển) của Kakao

  • Nội dung bài giảng được xây dựng dựa trên những câu hỏi thực tế mà các nhà tuyển dụng (nhà phát triển) của Kakao đã đặt ra trong các buổi phỏng vấn. Thay vì chỉ đưa ra những câu trả lời cố định cho buổi phỏng vấn, bài giảng được thiết kế để bạn có thể ứng phó với mọi câu hỏi liên quan đến mô hình SAGA.

📌 Cấu trúc bài giảng thông qua vô số sơ đồ, tóm tắt bài giảng và mã nguồn

  • Đây không chỉ là một bài giảng giải thích bằng lời nói đơn thuần, mà còn nâng cao hiệu quả học tập bằng cách cung cấp mã nguồn thực tế, sơ đồ (diagram), biểu đồ tuần tự (sequence diagram) và cả các tệp tóm tắt nội dung bài giảng bổ sung.


📌 Lối tắt từ Junior lên Senior..! Quản lý giao dịch phân tán dưới góc nhìn MSA

  • Thông qua khóa học này, bạn có thể xác định được môi trường MSA có những vấn đề gì và cách giải quyết chúng tương ứng, từ đó học hỏi một cách rõ ràng về những ưu điểm và nhược điểm của nó.


Khóa học này dành cho những đối tượng sau 👨‍🏫

🎯 Những nhà phát triển không chuyên nhưng muốn thử thách với việc thiết kế lưu lượng truy cập lớn

🎯 Những người đã nghe về MSA, SAGA nhưng chưa biết phương pháp thiết kế cụ thể

🎯 Nhà phát triển Backend đang trăn trở về khả năng mở rộng lưu lượng và khả năng phục hồi sau sự cố của các startup/tập đoàn lớn

🎯 Dành cho những nhà phát triển không chỉ dừng lại ở microservices đơn thuần mà muốn thiết kế các giao dịch phân tán phức tạp

Tài liệu tham khảo hữu ích 🚀

Những người cùng nhau tạo nên bài giảng🤭

⚠️ Đừng bỏ lỡ cơ hội để thấu hiểu quan điểm của các nhà tuyển dụng và các nhà phát triển tài năng!

Lưu ý

Môi trường thực hành

  • MySQL

    • Được cấu hình bằng cách sử dụng Docker.

  • Spring, Spring Boot

    • Sử dụng phiên bản 3.x (3.2)

  • Java

    • Java(TM) SE Runtime Environment (build 17.0.12+8-LTS-286)

  • docker, docker-compose

    • Docker version 28.0.0, build f9ced58158

    • Docker Compose version 2.33.1

  • IDE

    • IntelliJ IDEA

  • Hệ điều hành

    • Apple M3 Air

Chúng tôi đang vận hành một phòng chat mở để giúp các bạn chuẩn bị cho sự nghiệp của mình. Rất mong nhận được sự quan tâm của các bạn!

Khuyến nghị cho
những người này

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

  • Nhà phát triển phía máy chủ đang lo lắng về vấn đề nhất quán dữ liệu giữa các microservices

  • Kỹ sư Backend muốn học thiết kế giao dịch phân tán (distributed transaction) thông qua mã nguồn thực tế.

  • Nhà phát triển muốn nâng cấp kiến trúc dựa trên Kafka lên một tầm cao mới

  • Người học muốn nắm vững mô hình SAGA thực tế với Spring Boot

  • Các nhà lãnh đạo kỹ thuật và kiến trúc sư muốn thiết kế các hệ thống quy mô lớn ổn định

Xin chào
Đây là Hong

7,538

Học viên

461

Đánh giá

142

Trả lời

4.7

Xếp hạng

25

Các khóa học

Giới thiệu bản thân

Tôi bắt đầu học lập trình sau một thời gian dài lười biếng ở nhà vì cảm thấy hứng thú với nó, và hiện tại tôi đang đảm nhận vai trò phát triển server nền tảng tại Pangyo. Tôi tiếp tục hoạt động với tư cách là người chia sẻ kiến thức vì muốn cung cấp cho các bạn phương pháp học tập của bản thân, cùng với những vấn đề và giải pháp thực tế mà các bạn có thể gặp phải trong công việc.

 

Bài giảng không chỉ được tạo ra từ kiến thức của riêng tôi. Mỗi bài giảng đều có sự đồng hành của những người cộng sự.

 

Kinh nghiệm của người chia sẻ kiến thức

[Cựu] Nhà phát triển Blockchain liên quan đến IP Sandbox

[Cựu] Nhà phát triển Backend Metaverse

[Hiện tại] Nhà phát triển máy chủ dày dặn kinh nghiệm tại Pangyo

 

Lịch sử phỏng vấn

Các thắc mắc khác

  • unduck2022@gmail.com

Thêm

Chương trình giảng dạy

Tất cả

24 bài giảng ∙ (5giờ 2phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

23 đánh giá

4.9

23 đánh giá

  • yoonkr232897님의 프로필 이미지
    yoonkr232897

    Đánh giá 3

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    Cảm ơn bạn rất nhiều vì khóa học thật sự hữu ích.

    • feel0006171581님의 프로필 이미지
      feel0006171581

      Đánh giá 2

      Đánh giá trung bình 5.0

      5

      100% đã tham gia

      Đây là một thời gian tuyệt vời để học về distributed transaction!

      • jhong
        Giảng viên

        Xin chào bạn Pyrii2, cảm ơn bạn đã để lại đánh giá. Tôi sẽ cố gắng cung cấp những khóa học tốt hơn nữa trong tương lai. Chúc bạn có một ngày tốt lạnh!!

    • cchoii님의 프로필 이미지
      cchoii

      Đánh giá 12

      Đánh giá trung bình 5.0

      5

      38% đã tham gia

      Tôi đang phát triển server tại Kakao và đã giúp đỡ tạo ra khóa học này. Thực ra tôi muốn giấu chức vụ phỏng vấn viên... 😭😭 Nhưng tôi nghĩ đây thực sự là một chủ đề rất tuyệt vời nên đã quyết định tham gia khóa học này. Như tôi đã nói, khi tôi thực sự tiến hành phỏng vấn tại Kakao, tôi không đặc biệt quan tâm đến khía cạnh lập trình. Hầu hết các câu hỏi đều xoay quanh việc liệu ứng viên có thể thiết kế kiến trúc hay không và tôi coi trọng rất nhiều việc `người này có thể hình dung ra những gì`. Từ góc độ này, có thể phát sinh nhiều vấn đề khác nhau, và một trong những yếu tố đó chính là distributed transaction này. Vì vậy tôi nghĩ khóa học này càng có ích hơn. Nếu các bạn nghe khóa học này và có thể trả lời những câu hỏi như thế này thì tôi nghĩ các bạn đã học một cách thực sự ý nghĩa. 1. Hãy cho biết về hai pattern của SAGA (Choreography VS Orchestration) 2. Hãy cho biết về sự khác biệt và ưu nhược điểm của hai pattern này. Đặc biệt tôi tò mò về phần throughput và các vấn đề phát sinh từ đó. 3. Bạn có biết khái niệm local transaction không?? (Nếu không biết thì tôi sẽ giải thích) Vậy trong mối quan hệ với những transaction như thế này, distributed transaction có thể được quản lý như thế nào?? 4. Hãy cho biết tổng thể những gì bạn biết về góc độ distributed transaction. Tôi rất tò mò. 5. Bạn có biết Database per Service là góc độ như thế nào không?? Đây là ví dụ về những câu hỏi tôi thực sự đặt ra khi vào phỏng vấn. Nếu các bạn biết và có thể trả lời những phần này thì sẽ rất có ích. Xin hãy quan tâm nhiều đến khóa học. Cảm ơn!

      • jhong
        Giảng viên

        Hãy cùng nhau tạo ra những khóa học tốt hơn nữa nhé 😆😆 Cảm ơn bạn!

    • sgh1939님의 프로필 이미지
      sgh1939

      Đánh giá 8

      Đánh giá trung bình 5.0

      Đã chỉnh sửa

      5

      75% đã tham gia

      Chủ yếu là lý thuyết. Tôi nghĩ lý thuyết chiếm khoảng 80% và thực hành chiếm 20%. Có vẻ như không phù hợp với những người muốn biết lý thuyết và muốn biết các ví dụ mã nguồn sử dụng thực tế. Tuy nhiên, nó phù hợp với những người hoàn toàn không biết gì về pattern.

      • jhong
        Giảng viên

        Xin chào anh Sim Gyu-hwan, cảm ơn anh đã để lại đánh giá. Tôi nghĩ thời gian chỉ code đơn thuần sẽ không hữu ích cho mọi người nên đã xử lý source code thực tế một cách đơn giản, lần sau tôi sẽ chuẩn bị gần với thực chiến hơn. Cảm ơn vì đánh giá tốt!!

    • sdl1355126님의 프로필 이미지
      sdl1355126

      Đánh giá 14

      Đánh giá trung bình 5.0

      5

      92% đã tham gia

      Cá nhân tôi nghĩ đây có thể là một trong những khóa học hữu ích nhất trên Inflearn. Nhờ đó mà tôi có thể học được những nội dung thực sự bổ ích. Cảm ơn bạn.

      • jhong
        Giảng viên

        Cảm ơn anh keny rất nhiều vì đã để lại đánh giá tốt!! Tôi sẽ cố gắng cung cấp những bài giảng bổ ích hơn nữa trong tương lai!

    Khóa học khác của Hong

    Hãy khám phá các khóa học khác của giảng viên!

    Khóa học tương tự

    Khám phá các khóa học khác trong cùng lĩnh vực!

    1.608.475 ₫