Giải quyết gọn nhẹ kiến trúc bất đồng bộ sử dụng RabbitMQ

Học cách sử dụng RabbitMQ để áp dụng kiến trúc bất đồng bộ - phương pháp cơ bản nhất để xử lý dữ liệu lớn - dưới dạng Tutorial giúp bạn dễ dàng hiểu từ cơ bản đến nâng cao dựa trên SpringBoot 3.3. Tài liệu học tập (link Notion và URL Git Branch) được cung cấp theo từng chương của bài giảng. Vui lòng kiểm tra ghi chú lớp học.

(4.7) 47 đánh giá

578 học viên

Độ khó Cơ bản

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

Spring Boot
Spring Boot
JPA
JPA
websocket
websocket
rabbitmq
rabbitmq
Spring Boot
Spring Boot
JPA
JPA
websocket
websocket
rabbitmq
rabbitmq

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

4.7

5.0

도등어

100% đã tham gia

Thật tuyệt vời khi có thể học nhanh những kiến thức cốt lõi về RabbitMQ. Tôi đã băn khoăn rất nhiều vì thấy trong các đánh giá khác có ý kiến cho rằng việc giải thích khái niệm còn thiếu sót, nhưng nếu đã hiểu rõ về Spring và nghe kỹ các khái niệm ở phần đầu thì hoàn toàn có thể hiểu được bài học. Càng về sau tôi càng hài lòng với khóa học này, và cá nhân tôi rất thích cách anh giải thích khái niệm rồi thực hành luôn nên dễ hiểu lắm. Tuy nhiên khi gặp những khái niệm lạ, lúc đầu nghe có chút "hả?" nhưng khi xem code thì lại nghĩ "à, hoá ra anh muốn nói đến phần này". Điểm hơi tiếc là phần cung cấp Notion dưới dạng pdf, tuy không phải nội dung quá quan trọng nhưng khi mở pdf lên thì có những đoạn code bị cắt mất. Tôi đã nghe bài giảng rất hay, hy vọng lần sau anh sẽ tạo thêm các khóa học về những công nghệ khác nữa. Cảm ơn anh.

5.0

이경섭

100% đã tham gia

Bài giảng không dài nhưng dường như chỉ chứa đựng những nội dung quan trọng nhất theo cách dễ hiểu. Vào đầu mỗi bước hướng dẫn, bạn đã tóm tắt ngắn gọn cách tiến hành và nội dung quan trọng là gì, điều này rất hữu ích cho việc học các bài tập viết mã sau này. Ngoài ra, các ví dụ bạn đưa ra không khó nên tôi có thể học mà không gặp nhiều khó khăn. Cảm ơn bài giảng tuyệt vời.

5.0

Novel

100% đã tham gia

Đây là bài giảng cung cấp cho tôi cái nhìn tổng quan nhanh về công nghệ. Tôi rất vui vì bạn đã giới thiệu một số điều hữu ích cần biết trong tương lai. công lao 1. Phong cách bài giảng gọn gàng. 2. Độ dài bài giảng phù hợp. 3. Tài liệu bài giảng được tải lên Github.

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

  • Thấu hiểu về kiến trúc bất đồng bộ và xử lý phân tán thường gặp trong phỏng vấn kỹ thuật

  • Đặc điểm của AMQP và tìm hiểu về RabbitMQ

  • Học từng bước các ví dụ về RabbitMQ dựa trên SpringBoot

  • Xử lý Transaction của kết nối DB và Message Queue

  • Thấu hiểu về Exchange và Mô hình Định tuyến (Routing Model)

  • Triển khai hệ thống thông báo thời gian thực sử dụng Pub/Sub

  • Thu thập Log sử dụng Routing Model

  • Phương án xử lý lại bằng cách sử dụng Dead Letter Queue và Retry

Giải quyết nhanh gọn kiến trúc bất đồng bộ sử dụng RabbitMQ

Hiểu về kiến trúc bất đồng bộ sử dụng RabbitMQ, nền tảng cơ bản nhất để xử lý lưu lượng truy cập lớn.

  • Giải thích khái niệm và ví dụ cơ bản giúp bạn hiểu rõ mọi thứ trong một lần, từ việc truyền tin nhắn cơ bản nhất đến các ứng dụng nâng cao như xử lý Transaction.


  • Chỉ cần có kiến thức cơ bản về Java và Spring là bạn hoàn toàn có thể tự mình lập trình theo mà không gặp bất kỳ vấn đề gì.


  • Bạn có thể dễ dàng thấu hiểu thông qua việc học các bài hướng dẫn (Tutorial) theo từng bước, từ cơ bản đến nâng cao.


#RabbitMQ #KiếnTrúcBấtĐồngBộ #SpringBoot #JPA #MSA

Bạn sẽ học được những nội dung này

Khái niệm kiến trúc AMQP

Học về AMQP và RabbitMQ, các giao thức trao đổi tin nhắn để xử lý lưu lượng truy cập hiệu quả nhất giữa các hệ thống khác nhau.

Khái niệm AMQP

Theo dõi các ví dụ theo từng Mô hình Định tuyến (Routing Model) và loại Exchange

Học từng bước từ cơ bản, trung cấp đến nâng cao về các thành phần Routing Model dễ gây nhầm lẫn và các ứng dụng theo từng loại Exchange.

Tìm hiểu về đặc điểm và cách sử dụng của FanoutExchange, TopicExchange, DirectExchange và HeaderExchange.

Thực hiện thông báo thời gian thực bằng WebSocket và STOMP

Chúng tôi triển khai hệ thống thông báo thời gian thực sử dụng WebSocket trên một trang web đơn giản. Thông qua mã nguồn, bạn sẽ hiểu được các lỗi có thể phát sinh trong quá trình phát triển và giải pháp tương ứng, đồng thời nắm vững các khái niệm về truyền thông.

#WebSocket #STOMP

Quy trình Pub/Sub của WebSocket

Bạn có thể hiểu được cách sử dụng kiến trúc bất đồng bộ để xử lý Dead Letter nhằm hướng tới MSA.

#JPA #MSA #DLQ

Bạn có thể tìm hiểu về phương thức xử lý giao dịch và áp dụng đối soát cũng như hiệu chỉnh dữ liệu thông qua TCC.

Lưu ý trước khi học

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

  • Mặc dù thực hành trên Mac, nhưng vì RabbitMQ rất dễ cài đặt nên bạn cũng có thể thực hiện trên môi trường Windows/Linux.

  • Công cụ sử dụng: Spring Boot 3.3 / RabbitMQ phiên bản mới nhất (4.0.3), IntelliJ

  • Link Notion được cung cấp cho từng chương của bài giảng. Vui lòng nhất định phải kiểm tra ghi chú bài học.

Tài liệu học tập

  • Mỗi bài giảng đều cung cấp tài liệu học tập dưới dạng liên kết Notion trong phần ghi chú bài học. Mặc dù có đính kèm tệp PDF nhưng có thể xảy ra hiện tượng bị mất mã nguồn (code), vì vậy vui lòng sử dụng tài liệu học tập thông qua các liên kết.

  • Ví dụ cho từng bước được cung cấp trên Github, chia theo các nhánh (branch) của từng chương.

  • Tài liệu bài giảng của từng chương được đính kèm dưới dạng PDF cùng với các liên kết tương ứng.

  • Nếu bạn cần thêm ví dụ nào khác, vui lòng yêu cầu trên bảng tin học tập.

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

  • Hiểu biết về cú pháp Java

  • Hiểu biết cơ bản về Spring Boot, ngay cả khi không biết về Spring, bạn vẫn có thể học bằng cách làm theo mã nguồn.

  • Những người muốn học các kiến thức cơ bản để xử lý dữ liệu lớn hoặc lưu lượng truy cập lớn

  • Khóa học này được thiết kế theo dạng nâng dần mức độ của các ví dụ thông qua việc thực hành theo hướng dẫn. Tôi sẽ giải thích chi tiết ở cấp độ mã nguồn để ngay cả những người mới bắt đầu cũng có thể dễ dàng hiểu được, vì vậy tôi thực sự khuyên bạn nhất định phải tự mình viết mã.

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

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

  • Những người muốn nắm vững khái niệm cơ bản về kiến trúc bất đồng bộ để phục vụ cho việc xin việc hoặc chuyển việc.

  • Những người muốn học về kiến trúc cơ bản để xử lý dữ liệu lớn

  • Những người đang muốn xây dựng hệ thống bất đồng bộ để cân bằng tải

  • Những người muốn nghiên cứu về kiến trúc sau khi đã nắm vững kiến thức cơ bản về Java/Spring

  • Những người muốn áp dụng kiến trúc bất đồng bộ vào dịch vụ thực tế

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

  • Java

  • Mùa xuân

Xin chào
Đây là codevillain

Xác minh sự nghiệp

3,608

Học viên

166

Đánh giá

42

Trả lời

4.9

Xếp hạng

6

Các khóa học

Nhà phát triển Backend với 20 năm kinh nghiệm


  • Kakao (2018 ~ 2026, Cựu Trưởng nhóm)

  • LF (LG Fashion, 2017, Phó phòng nhóm nền tảng IT)

  • Coupang (2013~2017, Sr. Software Engineer)

  • Giải Bạc Cuộc thi Phát triển Nguồn mở (2012. Bộ Kinh tế Tri thức, NIPA)

Lĩnh vực chính
Tôi đã làm việc trong thời gian dài với Java, Spring và môi trường MSA. Thông qua kinh nghiệm xử lý dữ liệu lớn, thiết kế kiến trúc microservice, thiết kế thực thể (entity) cho các domain phức tạp và kinh nghiệm dẫn dắt đội ngũ, tôi muốn giúp bạn chuẩn bị cho các buổi phỏng vấn cũng như định hướng lộ trình sự nghiệp bằng những kiến thức kỹ thuật và hơn 10 năm kinh nghiệm làm người phỏng vấn của mình.


Kinh nghiệm giảng dạy

  • 2026.06 Bài giảng Claude Code tại DK Techin

  • 2025.05 Bài giảng về ứng dụng AI tại Đại học Quốc gia Pusan

  • 2024.11 Bài giảng đặc biệt về việc làm tại Học viện Đổi mới Gyeongsan, Đại học Daegu

  • 2024.10 Hội thảo việc làm dành cho lập trình viên trẻ của Hanbit Media - Bài giảng đặc biệt lần 2

  • 2024.09 Đại học Quốc gia Pusan Bài giảng đặc biệt về việc làm của Viện Đào tạo Hội tụ SW

  • 2024.04 Bài giảng đặc biệt tại hội thảo việc làm dành cho nhà phát triển trẻ của Hanbit Media

     

Sách đã xuất bản (Claude Code Master, Sổ tay phỏng vấn kỹ thuật cho nhà phát triển, Hanbit Media)

Thêm

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

Tất cả

22 bài giảng ∙ (5giờ 4phú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ả

47 đánh giá

4.7

47 đánh giá

  • smathj9975님의 프로필 이미지
    smathj9975

    Đánh giá 63

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    Tôi đã xem bài giảng rất hay. Cứ nghĩ phải xem trong năm nay, phải xem trong năm nay 😆😆. Ngoài Kafka thì RabbitMQ cũng là một công nghệ tuyệt vời nhỉ Có vẻ như có thể sử dụng trong hầu hết các dự án Cảm ơn anh đã quay bài giảng hay như vậy

    • codevillain
      Giảng viên

      Cảm ơn bạn đã để lại đánh giá khóa học. Mong bạn nhất định thử áp dụng vào công việc thực tế nhé

  • jackt05066257님의 프로필 이미지
    jackt05066257

    Đánh giá 28

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    Thật tốt khi có thể tìm hiểu thêm về rabbitmq

    • shrse님의 프로필 이미지
      shrse

      Đánh giá 13

      Đánh giá trung bình 5.0

      5

      100% đã tham gia

      Tôi đã hoàn thành tốt khóa học RabbitMQ.

      • codevillain
        Giảng viên

        Cảm ơn bạn slow đã để lại đánh giá khóa học.

    • read15162200님의 프로필 이미지
      read15162200

      Đánh giá 3

      Đánh giá trung bình 5.0

      5

      32% đã tham gia

      Thích ạ

      • sun8282829494님의 프로필 이미지
        sun8282829494

        Đánh giá 13

        Đánh giá trung bình 4.8

        3

        36% đã tham gia

        Thành thật mà nói, tôi sẽ viết đánh giá khóa học chỉ dựa trên những gì tôi cảm nhận được. Nội dung tổng thể có vẻ như tập trung chủ yếu vào thực hành hơn là trình bày rõ ràng các khái niệm của RabbitMQ, và tôi cảm thấy thiếu sót trong việc giải thích các thuật ngữ và khái niệm được sử dụng xen kẽ. Sẽ tốt hơn nếu giảng viên giải thích các khái niệm bằng cách sử dụng tài liệu trực quan. Chỉ có văn bản nói "cái này có nghĩa là thế này, cái kia là thế kia" và giảng viên nói một lần rồi chuyển qua phần khác, điều này khiến tôi không thể không cảm thấy thiếu sót. Cách nói của giảng viên cũng không mượt mà và cá nhân tôi cảm thấy theme IntelliJ mà giảng viên sử dụng làm giảm khả năng đọc. Nhìn chung đây là một bài giảng có sức truyền đạt rất kém. Mặc dù tôi mới chỉ học được khoảng 35% nhưng khi nhìn vào chương trình học, tôi không nghĩ phần sau sẽ tốt hơn phần đầu. Sẽ tốt nếu khi thực hành, trước tiên nắm vững khái niệm rồi sau đó thực hành để ghi nhớ lại, nhưng có vẻ như khóa học được tiến hành với giả định là học viên đã biết các khái niệm cơ bản về RabbitMQ, nên tôi không muốn giới thiệu khóa học này cho những ai mới tiếp cận RabbitMQ lần đầu.

        • codevillain
          Giảng viên

          Xin chào. Anh/Chị Ha Seung-soo, cảm ơn anh/chị đã lắng nghe bài giảng còn thiếu sót này. Trước hết, các thuật ngữ và khái niệm được trình bày trong 4. Tìm hiểu về AMQP và 5. Các thuật ngữ chính và tìm hiểu về Exchange chiếm phần lớn các khái niệm chính của RabbitMQ. Chỉ cần biết các thuật ngữ này thì phần còn lại sẽ không gây trở ngại cho việc theo dõi bài giảng, và chỉ cần khoảng 15 phút kiến thức lý thuyết thì anh/chị có thể giải quyết phần còn lại thông qua thực hành. Về khái niệm của khóa học này, tôi đã giới thiệu chi tiết trong phần giới thiệu miễn phí (1. Khái niệm khóa học và mô tả mục lục). Khóa học này là một khái niệm hướng dẫn (tutorial) từng bước theo kiểu thực hành, từ Bước 1 đến Bước 14. Do đó, nếu bạn chỉ cần hiểu về Java và Spring, và nắm vững các thuật ngữ, thì đây là một khóa học được biên soạn để bạn có thể theo dõi mã thực hành và từng bước hiểu các khái niệm phức tạp hơn. Mỗi bài giảng sẽ giải thích riêng biệt về chủ đề cần phát triển và các khái niệm cần biết ở phần đầu, sau đó giải thích theo cách vừa trực tiếp triển khai code để hiểu khái niệm đó. Đây không phải là hình thức mang code đã viết sẵn ra để review, mà là hình thức tiến hành từng bài giảng hoàn thành dần khi thực sự viết code. Do đó, nếu bạn theo dõi toàn bộ khóa học, chỉ với nội dung của khóa học này, bạn hoàn toàn có thể đưa ra phán đoán về việc có nên triển khai RabbitMQ trong thực tế và áp dụng kiến trúc bất đồng bộ. Trong trường hợp của IntelliJ, đây là một công cụ phát triển thiết yếu cho các nhà phát triển Java, và giao diện (skin) trên màn hình là giao diện mặc định cơ bản. Cá nhân tôi sử dụng theme Dacula (dark), lý do sử dụng theme mặc định là vì có phản hồi rằng khi xem theme tối trong video thì mắt bị mỏi và khó chịu, nên khóa học được tạo ra với theme mặc định của IntelliJ. Mong bạn lưu ý điều này. Cảm ơn bạn đã đóng góp ý kiến quý báu.

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

      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!