강의

멘토링

커뮤니티

BEST
Programming

/

Back-end

注文システムで学ぶ分散トランザクション

MSA環境で起こりうる整合性の問題と解決策を学びましょう

  • 169developer9973
실습 중심
분산트랜잭션
동시성이슈
MSA

学習した受講者のレビュー

こんなことが学べます

  • MSA環境でトランザクションを制御する方法

  • 分散トランザクション

MonolithicからMSAへの移行、そして分散トランザクション

サービスが成長し複雑になるにつれて、多くの企業は既存のモノリシック(Monolithic)アーキテクチャからマイクロサービスアーキテクチャ(MSA)への転換を検討するようになります。MSAはサービス間の独立性と拡張性を保証し、迅速な開発とデプロイ、柔軟な障害対応などを可能にする現代的なアーキテクチャです。しかし、このような転換には必ず押さえておくべき重要な課題があります。それはトランザクションの一貫性と整合性の問題です。

Monolithic環境では、一つのデータベースとトランザクション境界内ですべての処理を実行できたため、トランザクション管理が比較的簡単でした。注文、決済、在庫など様々なドメインのデータが一つのトランザクションでまとめられ、一貫性を持って処理されていました。しかし、MSAに移行することで各ドメインが独立したサービスと別々のデータベースに分離され、既存方式のトランザクション処理ではデータ整合性を保証することが困難な状況が発生します。

この講義では、単一トランザクションでは解決できないMSA環境でのトランザクション問題をどのように解決できるか、分散トランザクションパターンである2PC、TCC、そしてSAGAについて学習します。

特にこの講義は単純な理論説明に留まらず、注文サービスを中心にMonolithic構造から始めて、MSA環境に移行しながら実際にどのような問題が発生するのか、そしてこれを各パターンを通じてどのように解決できるのかを具体的なフローチャート、サンプルコード、実務適用のコツと共に説明します。

受講後には

  • Monolithicからマイクロサービスアーキテクチャ(MSA)に移行する際に発生するトランザクション問題について理解しています。

  • 各分散トランザクションパターンの構造、メリット・デメリット、適用時の考慮事項を理解できます。

  • 実務でトランザクション整合性を確保するための設計戦略を知ることができます。

  • Lockを活用した同時性制御を行うことができます。


受講前の参考事項

実習環境

  • 講義はMacOS基準で説明します。Windowsマシンの場合、dockerがインストールされていればほとんど付いてこられます。

  • IntelliJを使用します。

前提知識

  • Spring

  • JPA


注意事項

  • この講義は注文システムを作る講義ではなく、とても簡単な注文システムを例にMSA環境で活用する分散トランザクションについて学ぶ講義です。

    • 例えば、注文に活用できるペイメントを活用した決済のような機能は扱いません。


こんな方に
おすすめです

学習対象は
誰でしょう?

  • 複数のサービスにまたがる状況で、整合性をどう合わせるか?悩んでいた方

  • MSA環境ではトランザクションをどう管理するか悩んでいた方

前提知識、
必要でしょうか?

  • JPA

こんにちは
です。

5,632

受講生

441

受講レビュー

306

回答

4.8

講座評価

3

講座

안녕하세요. 지식공유자 최상용입니다.

많은 오픈소스에 기여한 경험이 있는 현직 백엔드 개발자입니다.

- Spring Data Mongo Contributor
- querydsl Contributor
- grpc-kotlin Contributor
- ksp Contributor
- mybatis Contributor

カリキュラム

全体

46件 ∙ (5時間 37分)

講座掲載日: 
最終更新日: 

受講レビュー

全体

11件

5.0

11件の受講レビュー

  • hsk7413388님의 프로필 이미지
    hsk7413388

    受講レビュー 3

    平均評価 5.0

    5

    61% 受講後に作成

    • abcd123123님의 프로필 이미지
      abcd123123

      受講レビュー 194

      平均評価 5.0

      5

      7% 受講後に作成

      • devjinsung님의 프로필 이미지
        devjinsung

        受講レビュー 6

        平均評価 5.0

        修正済み

        5

        100% 受講後に作成

        Thank you for creating such a great lecture~! I only knew the keyword about distributed transactions and didn't really understand the content, but thanks to this lecture, I was able to learn a lot. The lecture didn't just cover theoretical content, but also shared real-world situations you might encounter in practice and the corresponding solution know-how, which made it really enjoyable to watch! It was great that I got a sense of how to actually apply it in practice. Thank you so much for such a wonderful lecture!!!

        • 7000cj님의 프로필 이미지
          7000cj

          受講レビュー 120

          平均評価 5.0

          5

          18% 受講後に作成

          • afgman4님의 프로필 이미지
            afgman4

            受講レビュー 13

            平均評価 5.0

            5

            31% 受講後に作成

            ¥4,887

            169developer9973の他の講座

            知識共有者の他の講座を見てみましょう!

            似ている講座

            同じ分野の他の講座を見てみましょう!