강의

멘토링

커뮤니티

NEW
Programming

/

Back-end

Vấn đề đồng thời đơn giản nhất - Race Condition

Học về vấn đề đồng thời điển hình là Tình trạng Cạnh tranh (Race Condition). Thực hành so sánh môi trường máy chủ đơn lẻ và môi trường phân tán gây ra vấn đề đồng thời. Có thể hiểu được ranh giới giao dịch và mức độ cô lập. Có thể học được sự khác biệt giữa khóa lạc quan, khóa bi quan và khóa phân tán.

16 học viên đang tham gia khóa học này

  • joyopi
실습 중심
낙관적락
비관적락
분산락
동시성문제
Docker
Spring Boot
DBMS/RDBMS
Redis
k6

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

  • Nguyên nhân cơ bản của vấn đề đồng thời và phương pháp giải quyết

  • Cách giải quyết vấn đề đồng thời trong môi trường máy chủ đơn và môi trường máy chủ phân tán

  • Hiểu và sử dụng đúng cách Optimistic Lock, Pessimistic Lock và Distributed Lock

  • Hiểu về ranh giới giao dịch và mức độ cô lập

  • Cách sử dụng IntelliJ IDEA, Docker, k6

Vẫn còn bối rối về vấn đề đồng thời sao?

Với khóa học này, hãy hiểu chính xác các khái niệm và phương pháp giải quyết vấn đề đồng thời như optimistic lock, pessimistic lock, distributed lock.

  • Tạo môi trường gây ra vấn đề đồng thời để thực sự trải nghiệm các vấn đề về tính đồng thời.

  • Hãy xác nhận sự khác biệt của vấn đề đồng thời trong môi trường máy chủ đơn lẻ và môi trường máy chủ phân tán.

  • Có thể hiểu được cách sử dụng annotation @Transactional mà trước đây đã sử dụng mà không biết chính xác.

  • Vấn đề đồng thời chỉ có một nhưng tại sao lại có nhiều cách giải quyết khác nhau? Hãy xác nhận lý do.

Chúng tôi khuyến nghị cho những người như thế này

Những người nên học khóa học này (1)

Thực ra tôi vẫn chưa hiểu rõ về vấn đề đồng thời. 😅

Những người nên tham gia khóa học này (2)

Tôi không hiểu chính xác sự khác biệt giữa optimistic lock, pessimistic lock và distributed lock. 🌧️

Những người nên học khóa học này (3)

Làm thế nào để kiểm tra các vấn đề về tính đồng thời? 📜

Sau khi hoàn thành khóa học

  • Bạn có thể hiểu về tình trạng tranh chấp (Race Condition), vấn đề đồng thời xảy ra nhiều nhất trong thực tế.

  • Có thể sử dụng đúng cách annotation @Transactional mà trước đây đã sử dụng mà không hiểu rõ.

  • Có thể hiểu và giải quyết chính xác các vấn đề về đồng thời trong môi trường máy chủ đơn lẻ và môi trường máy chủ phân tán.

  • Hiểu về mức độ cô lập giao dịch và ranh giới, có thể áp dụng vào thực tế công việc.

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

Sử dụng IntelliJ IDEA để thực hành thuận tiện và cung cấp tài liệu bài giảng thông qua Notion, Github

Điểm mạnh cốt lõi của khóa học này (1)

IntelliJ có tính năng như thế này à. 😲

Gửi yêu cầu kiểm thử đến ứng dụng API đang chạy, kết nối với DB để quản lý dữ liệu và xem dữ liệu được lưu trữ trong Redis - tất cả các công việc này được thực hiện cùng lúc trong IntelliJ.

Điểm mạnh cốt lõi của khóa học này (2)

Cung cấp tài liệu giảng dạy Notion được cập nhật phản ánh theo thời gian thực.

Để bạn có thể theo dõi bài thực hành một cách dễ dàng, tôi sẽ cung cấp mã dự án thông qua liên kết GitHub.

Chúng ta sẽ học những nội dung như thế này

Lý do cơ bản của vấn đề đồng thời và phương pháp giải quyết

Bạn có biết lý do căn bản của vấn đề đồng thời không?

Nếu hiểu từ nguyên nhân căn bản và học cách giải quyết, bạn có thể hiểu và giải quyết vấn đề một cách chính xác hơn.

Trong khóa học, chúng ta sẽ bắt đầu bằng việc nắm vững khái niệm về vấn đề đồng thời.

Các phương pháp giải quyết đa dạng thực hành trong môi trường phân tán

Vấn đề đồng thời xảy ra khác nhau trong môi trường máy chủ đơn lẻ và môi trường máy chủ phân tán. Ngay cả khi áp dụng cùng một phương pháp giải quyết, vấn đề có thể không được giải quyết tùy thuộc vào môi trường.

Bạn phải biết nên sử dụng như thế nào trong môi trường nào thì mới có thể áp dụng ngay vào công việc thực tế.

Chạy đồng thời 2 ứng dụng để cấu hình môi trường phân tán.

Người tạo ra khóa học này

  • (Hiện tại) Nhà phát triển Backend tại AhnLab


Bạn có thắc mắc gì không?

Q. Chủ đề về vấn đề đồng thời cảm thấy quá khó hiểu. 🫥

Lý do vấn đề đồng thời cảm thấy khó khăn không phải vì khái niệm phức tạp, mà là vì không thể nắm bắt được cảm giác cho đến khi trực tiếp trải nghiệm trong thực tế.
Trong khóa học, chúng tôi chỉ trích xuất những khái niệm cốt lõi và giải thích tập trung vào thực hành.
Bạn có thể hiểu nhanh chóng vì có thể xác nhận ngay bằng code.

Q. Tôi vẫn chưa hiểu rõ về Spring Boot hoặc JPA. 🤦‍♀️

Bạn không cần phải hiểu sâu về Spring Boot và JPA.
Khái niệm đồng thời có thể được hiểu độc lập với framework.
Trong khóa học, chúng tôi sẽ chỉ giải thích tối thiểu những phần cần thiết và áp dụng ngay vào thực hành.
Mã nguồn dự án được sử dụng trong thực hành cũng được cung cấp qua GitHub nên bạn có thể theo dõi ngay lập tức.

Q. Vấn đề đồng thời có thường xuyên xảy ra trong thực tế không❓

Vâng, trong các dịch vụ thực tế thì điều này xảy ra thường xuyên.
Trong cấu trúc có lưu lượng truy cập lớn hoặc truy cập tài nguyên chia sẻ thì gần như chắc chắn sẽ xuất hiện.
Đặc biệt là thường xuyên xảy ra trong logic thay đổi trạng thái như giảm tồn kho, thanh toán, đặt chỗ.
Vì vậy, việc xem xét chiến lược kiểm soát đồng thời ngay từ giai đoạn thiết kế ban đầu được khuyến nghị trong thực tế.

Những lưu ý trước khi học

Môi trường thực hành của giảng viên

  • Hệ điều hành và phiên bản: Windows 11

  • Công cụ sử dụng: IntelliJ IDEA Ultimate Edition, Docker, k6, Spring Boot, DBMS/RDBMS, Redis


Kiến thức tiên quyết và lưu ý

  • Spring Boot, JPA, RDBMS

  • Khóa học này thực hành trong môi trường tạo ra nhiều yêu cầu đồng thời để thực hành các vấn đề về tính đồng thời, nhưng đây không phải là khóa học về cách xử lý khối lượng lớn yêu cầu mà không gặp vấn đề gì.

  • Tôi xin thông báo rằng phương pháp xử lý lượng lớn yêu cầu và phương pháp xử lý vấn đề đồng thời là hai chủ đề khác nhau.

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 đang băn khoăn về các vấn đề đồng thời gây nhầm lẫn liên tục và phương pháp giải quyết

  • Nhà phát triển muốn hiểu về giao dịch liên quan đến vấn đề đồng thời

  • Nhà phát triển muốn hiểu và áp dụng sự khác biệt giữa Optimistic Lock, Pessimistic Lock và Distributed Lock

Cần biết trước khi bắt đầu?

  • Kinh nghiệm phát triển server backend API đơn giản (Spring Boot)

  • Kiến thức cơ bản về cơ sở dữ liệu (RDBMS, NoSQL)

Xin chào
Đây là

(현) 안랩 백엔드 개발자

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

Tất cả

25 bài giảng ∙ (3giờ 54phút)

Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Chưa có đủ đánh giá.
Hãy trở thành tác giả của một đánh giá giúp mọi người!

Ưu đãi có thời hạn, kết thúc sau 8 ngày ngày

4.401 ₫

28%

1.045.306 ₫

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!