강의

멘토링

커뮤니티

BEST
Programming

/

Web Development

Các mẫu giao dịch phân tán từ góc nhìn MSA do phỏng vấn viên Kakao chia sẻ

Học tập kỹ thuật quản lý giao dịch SAGA để duy trì tính nhất quán dữ liệu trong môi trường phân tán theo hướng thực hành. Xây dựng 3 microservices sử dụng Spring Boot và Docker, triển khai hai mẫu thiết kế 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 trong 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ù trừ, xử lý phục hồi lỗi.

(4.9) 20 đánh giá

498 học viên

Độ khó Cơ bản

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

  • Hong
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.

  • Bí mật thiết kế giao dịch phân tán bất bại trước sự cố được tiết lộ

  • Mẫu Orchestration·Choreography, khi nào và như thế nào sử dụng trong thực tế?

  • Giao dịch SAGA dựa trên sự kiện thời gian thực được triển khai với Kafka

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

  • Thực hành xây dựng transaction microservices trực tiếp với Docker

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

  • Nội dung bên dưới là cuộc trò chuyện thực tế.

😁 Phỏng vấn viên Kakao (lập trình viên) : XX (Hong) nên tìm hiểu về distributed transaction. Cậu có biết không??

😄 Hong : Ý anh nói đến khái niệm như local transaction hay compensating transaction phải không??

😁 Phỏng vấn viên Kakao (lập trình viên) : Ừ, mình nói về SAGA pattern đó. Mình làm phỏng vấn viên và luôn hỏi những câu như thế này, mà có nhiều người không biết nên mình nghĩ đến cậu và hỏi thử

😄 Hong : Mình có nghe qua nhưng chưa implement đến tận core level. Mình chưa đi sâu đến quan điểm Database per Service nên chỉ biết khái niệm thôi

😁 Người phỏng vấn Kakao (Lập trình viên) : Vậy thì mình sẽ tổng hợp nội dung liên quan đến chủ đề này và chia sẻ cho bạn, cùng tìm hiểu qua các bài giảng và thực hành cùng nhau nhé.

😄 Hong : Hahaha tốt đấy, vậy sau này mình nộp đơn vào Kakao cũng dễ rồi kkk. Thử làm xem nào.

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

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ụ, thì trong tình huống này làm thế nào để đảm bảo quản lý trạng thái công việc và Transaction tương ứng??

Câu trả lời cho điều đó nằm ở SAGA pattern. Để thực hiện và xử lý một tác vụ, cần phải giao tiếp với vô số service và trong quá trình đó sẽ phát sinh vô số transaction. Từ quan điểm mà mỗi service đều có database riêng, mỗi tác vụ sẽ thực hiện local transaction và thông qua pattern thực hiện compensating transaction đối với các tình huống lỗi, một tác vụ sẽ được thực hiện. Tôi hy vọng bạn sẽ có được quan điểm về cách triển khai chức năng distributed transaction như thế này khi xem khóa học này. 🚀

Đặc điểm của khóa học này

📌 Khóa học được xây dựng dựa trên kinh nghiệm và câu hỏi phỏng vấn thực tế từ người phỏng vấn (lập trình viên) của Kakao

  • Khóa học được xây dựng dựa trên những câu hỏi mà người phỏng vấn (developer) thực tế tại Kakao đã từng đặt ra trong các buổi phỏng vấn. Không chỉ đơn thuần cung cấp câu trả lời cố định cho phỏng vấn, mà được cấu trúc để bạn có thể ứng phó với mọi câu hỏi liên quan đến SAGA pattern.

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

  • Đây không phải là khóa học chỉ 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 source code thực tế, diagram, sequence diagram, và thêm cả file tóm tắt ngắn gọn về nội dung bài giảng.


📌 Con đường tắt từ Junior đến Senior..! Quản lý giao dịch phân tán theo quan điểm MSA

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


Khóa học này được đề xuất cho những ai 👨‍🏫

🎯 Lập trình viên không chuyên ngành nhưng muốn thử sức với thiết kế xử lý 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ể

🎯 Lập trình viên backend đang quan tâm đến khả năng mở rộng lưu lượng truy cập và khả năng phục hồi sự cố của startup/doanh nghiệp lớn

🎯 Vượt qua microservices đơn giản, các nhà phát triển muốn thiết kế các giao dịch phân tán phức tạp

Tài liệu nên xem cùng 🚀

Những người cùng tạo nên khóa học 🤭

⚠️ Đừng bỏ lỡ cơ hội được nghe ý kiến từ các lập trình viên giỏi và những người phỏng vấn!

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 phiên bản 2.33.1

  • IDE

    • IntelliJ IDEA

  • Hệ điều hành

    • Apple M3 Air

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

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

  • Lập trình viên server đang băn khoăn về vấn đề tính nhất quán dữ liệu giữa các microservice

  • Kỹ sư backend muốn học thiết kế giao dịch phân tán thông qua code 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 chiến với Spring Boot

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

Xin chào
Đây là

5,970

Học viên

391

Đánh giá

127

Trả lời

4.7

Xếp hạng

22

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 khi cảm thấy hứng thú với nó trong lúc đang rảnh rỗi ở nhà, và hiện tại tôi đang đảm nhận việc 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 tôi đã học cũng như những vấn đề và giải pháp đa dạng mà các bạn có thể gặp phải trong thực tế.

 

Bài giảng không chỉ được tạo nên 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 tất cả các bạn.

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 Sandbox IP

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

[Hiện tại] Là một nhà phát triển server 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

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ả

20 đánh giá

4.9

20 đánh giá

  • cchoii님의 프로필 이미지
    cchoii

    Đánh giá 11

    Đá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!

  • 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!!

    1.585.501 ₫

    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!