Kỹ thuật xử lý lưu lượng truy cập lớn dựa trên quy trình làm việc cùng với người phỏng vấn Kakao

Làm thế nào để chịu tải được lượng truy cập bùng nổ? Thông qua các mô hình thiết kế thực tế dựa trên EDA (Kiến trúc hướng sự kiện) sử dụng Kafka, Spring, CDC và Temporal, bạn sẽ học được cách xây dựng một kiến trúc có khả năng chống chịu lỗi tốt và mở rộng linh hoạt. Với kinh nghiệm thực tế từ nhà phát triển Kakao, khóa học giải thích một cách dễ hiểu và rõ ràng để ngay cả những người không chuyên cũng có thể nắm bắt được. Đây là khóa học tập trung vào thực hành, bao gồm tất cả từ dòng dữ liệu thời gian thực, xử lý sự kiện cho đến liên kết microservices!

(4.9) 35 đánh giá

482 học viên

Độ khó Nhập môn

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

Spring
Spring
Kotlin
Kotlin
MySQL
MySQL
Kafka
Kafka
Spring
Spring
Kotlin
Kotlin
MySQL
MySQL
Kafka
Kafka

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

ks ju

93% đã tham gia

Thật sự đây là một chủ đề rất tuyệt vời. Đây là nội dung hoàn toàn mới mẻ với tôi và điều này... mặc dù đang có kinh nghiệm thực tế, nhưng với tôi - người chỉ từng phát triển các API thông thường, đây thực sự là một chủ đề cực kỳ bổ ích giúp tôi nhận ra thế giới rộng lớn như thế nào.. Cảm ơn bạn rất nhiều vì đã tạo ra một chủ đề tuyệt vời như vậy. Nếu nói về ưu điểm thì, chỉ từ kiến trúc này thôi cũng có thể học được rất nhiều điều lớn lao, và có thể tiếp cận khái niệm workflow - một khái niệm thực sự xa lạ như thế này với mức giá rẻ như vậy thật là tuyệt vời.

5.0

Jlos Ho

89% đã tham gia

Đây có lẻ là bài giảng ý nghĩa nhất trong số các chủ đề tôi đã học cho đến nay. Tôi nghĩ mình đã xem rất nhiều chủ đề qua nội dung blog hay video bài giảng, nhưng khi nhìn thấy chủ đề như thế này, tôi cảm thấy như mình chỉ đang loay hoay trong cái giếng nhỏ mà thôi. Chính vì vậy mà bài giảng này có góc nhìn thực sự xuất sắc và nội dung giúp mở rộng tầm nhìn. Hy vọng rằng nhiều người sẽ tạo ra và học những bài giảng như thế này để văn hóa phát triển của chúng ta ngày càng trưởng thành hơn. Cảm ơn rất nhiều vì bài giảng tuyệt vời này.

5.0

릴뽀이_!

89% đã tham gia

Có vẻ như đây là một trong những khóa học tốt nhất trên Inflearn.. So với các chia sẻ viên nổi tiếng khác thì có vẻ như anh không nổi tiếng lắm, nhưng nội dung thì có vẻ tốt hơn nhiều. Tôi cảm thấy đã học được rất nhiều từ một senior developer có kỹ năng phát triển quá xuất sắc và có quan điểm rất hay. Cảm ơn vì khóa học tuyệt vời.

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

  • Thiết kế và các mô hình Kiến trúc hướng sự kiện (Event-Driven Architecture - EDA)

  • Xây dựng hàng đợi tin nhắn và đường ống dữ liệu bất đồng bộ dựa trên Kafka

  • Chiến lược Change Data Capture (CDC) và đồng bộ hóa dữ liệu thời gian thực

  • Điều phối quy trình làm việc phân tán và quản lý trạng thái bằng cách sử dụng Temporal

  • Thiết kế xử lý bất đồng bộ và tích hợp Microservices dựa trên Spring Boot

  • Các kỹ thuật lập trình hàm hiện đại sử dụng Kotlin

Lưu lượng truy cập đột ngột tăng vọt.. Tải trọng máy chủ và các mô-đun đều bị sập hết rồi, tôi phải làm sao đây?? 🤔

❗Nội dung này là nội dung cuộc trò chuyện thực tế.❗

😄 Hong : Bạn có đang cân nhắc về workflow không, bạn có biết gì về nó không??

😁 Kakao : Ừ, biết chứ. Có phải bạn đang nói đến mấy cái như Airflow không?? Cuối cùng thì bạn cũng bắt đầu quan tâm đến các công cụ workflow rồi đấy. Sư phụ thấy rất vui.

😁 Nhà phát triển startup : Hình như không phải cái đó đâu, không phải cậu ấy đang nói về quản lý tác vụ ở cấp độ Client sao?

😄Kakao : À, ý cậu là mấy thứ như Netflix Conductor hả, tớ dùng cái đó thường xuyên lắm.

😄 Hong : Đúng rồi, dạo này tôi đang dùng cái đó, công nhận nó xịn thật đấy

😄Kakao : Ừ đúng rồi, dùng cái đó thì mấy thứ phức tạp đều được trừu tượng hóa hết, cảm giác xử lý cực kỳ sướng luôn. Chắc không nhiều người biết đâu, mà sao ông biết hay vậy, tiến bộ dữ nha

😁 Nhà phát triển startup : Đúng vậy, vốn dĩ cậu ấy hoàn toàn là một người mới mà.

😄Kakao : Nếu dùng cái này, ngay cả khi lưu lượng truy cập bùng nổ đột ngột do các sự kiện, nó vẫn rất ổn định vì dựa trên nền tảng hướng sự kiện (event-driven). Ở công ty tôi dùng cái khác nhưng thực lòng mà nói, nếu biết cái này thì cực kỳ tốt luôn.

😄 Hong : Nếu biết thì phải chỉ cho chứ ㅡㅡ Không phải đã bảo là sẽ đào tạo đệ tử sao?? Có ai muốn cùng làm cái này không

😄Kakao : Tôi tham gia. Thật lòng mà nói, có nhiều người làm ở Kakao cũng không biết cái này, tôi cũng thắc mắc tại sao họ lại không biết. Vì tôi đã từng dùng rồi nên tôi sẽ tham gia, còn có cả mã nguồn mở tên là Temporal nữa đấy.

😁 Nhà phát triển startup : Tôi lười nên chỉ vào bắt bẻ thôi

😁 Toss : Ồ cái gì đây?? Tôi đã xem qua trang web và thấy Temporal cũng có vẻ thú vị đấy?? Có vẻ sẽ ổn nếu áp dụng vào, nếu bạn làm bài giảng tôi sẽ mua xem.

😄 Hong: ㅋㅋㅋㅋㅋ Để mình mời bạn, cùng nhau làm thử một cái xem sao

Có lẽ nào có những vấn đề kinh niên của các kiến trúc như EDA, MSA và phương pháp triển khai nào để đảm bảo tính an toàn không nhỉ?? 🤔

Chỉ đơn thuần là nhận sự kiện rồi xử lý?? Quy trình này là khái niệm mà nhiều người đã biết và đang áp dụng. Nhưng nếu sự kiện này thất bại thì sao?? Hoặc chúng ta sẽ quản lý các logic mã nguồn dài như thế nào??


Câu trả lời nằm ở điều phối quy trình công việc (workflow orchestration). Bạn có thể mô-đun hóa và chuyển đổi logic kinh doanh hoặc xử lý dữ liệu thành các sự kiện, từ đó cho phép triển khai logic kinh doanh dưới dạng mã nguồn dựa trên EDA ngay cả khi lưu lượng truy cập tăng đột biến. Ngoài ra, sẽ ra sao nếu toàn bộ chuỗi quy trình này, từ giám sát đến quá trình thử lại (retry) một cách an toàn, đều được hỗ trợ thông qua một nền tảng duy nhất?? 🤷

Chúng tôi cùng các nhà phát triển dày dạn kinh nghiệm đã tập hợp và công khai tất cả các bí quyết về phương pháp bổ sung cho kiến trúc dựa trên MSA và EDA hiện đại, cũng như cách chuyển đổi logic kinh doanh thành sự kiện và cách quản lý chúng một cách an toàn.


Đây không phải là một bài giảng lý thuyết nhàm chán, mà tôi đã chuẩn bị nó như một hướng dẫn thực hành để chinh phục hoàn toàn các tính năng cốt lõi của thiết kế dựa trên quy trình làm việc (workflow) thông qua việc cùng nhau quan sát quá trình vận hành. 🚀

Lý do tại sao khóa học này lại đặc biệt

📌 Sự kiện tặng 100 mã giảm giá

Chúng tôi sẽ chọn ra 50 người trong số những người mua hàng trong đợt giảm giá cực sốc của khóa học và tặng mỗi người 2 mã giảm giá 50%


Vì thời gian diễn ra sự kiện đã kết thúc nên tính năng này hiện không còn được cung cấp. Mong các bạn thông cảm.

📌Nội dung bài giảng sẽ tiếp tục được bổ sung dựa trên các câu hỏi của các bạn

Các câu hỏi mà các bạn đặt ra sẽ liên tục được bổ sung vào Chương 8 để hoàn thiện nội dung bài giảng. Dù là câu hỏi về bài giảng hay những câu hỏi không liên quan, nếu các bạn đặt nhiều câu hỏi, tôi sẽ chọn lọc những câu hỏi hữu ích và cung cấp thêm các nội dung liên quan hoàn toàn miễn phí dành riêng cho học viên.

  • Vui lòng tham khảo nội dung (Miễn phí) Những lưu ý trước khi học.

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

📌 Khóa học bao quát tất cả về MSQ(Kafka), CDC(MySQL), Temporal(workflow)

* Không chỉ đơn thuần sử dụng một nền tảng duy nhất. Bằng cách kết hợp các nền tảng bổ sung thiết yếu trong việc xây dựng EDA và MSA, bạn có thể học được cách vận dụng các nền tảng một cách thực tế.

📌 Các nền tảng mà lập trình viên cấp cao thực sự áp dụng và sử dụng trong công việc thực tế

* Giống như nội dung cuộc đối thoại ở phần đầu, bạn có thể học về các nền tảng mà ngay cả những nhà phát triển đang làm việc tại Kakao cũng không biết rõ, từ đó tạo ra điểm khác biệt cho bản thân.

📌 Cấu trúc bài giảng phong phú với khoảng 50 biểu đồ và tệp tóm tắt bài giảng

* Đây không chỉ là bài giảng giải thích đơn thuần bằng lời nói, mà còn 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 ngắn gọn.

📌 Con đường tắt từ Junior lên Senior..! Thiết kế hệ thống

* Bạn sẽ được học về những nhược điểm lớn của các kiến trúc đang được ưa chuộng hiện nay như EDA, MSA và cách thiết kế để duy trì tính ổn định tương ứng.

* Bạn cũng sẽ được học về các kỹ thuật xử lý dữ liệu thời gian thực khi sử dụng Database.

Khóa học này bao gồm những nội dung sau. 🧩

* Khái niệm và sự cần thiết của việc đồng bộ hóa dữ liệu thời gian thực

* Mô hình CDC thông qua Kafka + Debezium

* Cách xây dựng môi trường bằng Docker và hình ảnh (image) nhẹ

* Tại sao chúng ta lại ưa chuộng Docker thay vì Virtual Machine??

* Các khái niệm cơ bản nhưng cốt lõi của Kafka

* Khái niệm cơ bản về Producer & Consumer của Kafka

* Đảm bảo chuyển phát tin nhắn (Delivery Guarantee) trong Kafka

* Khái niệm cơ bản và sự cần thiết của CDC, cốt lõi của đồng bộ hóa thời gian thực

* Tại sao CDC dựa trên MySQL Binary Log lại hiệu quả

* Debezium, nền tảng triển khai CDC dựa trên Binary Log

* Workflow cho máy chủ vận hành ổn định

* Các khái niệm cốt lõi của Temporal: Workflow và Activity

* Triển khai Kafka và quy trình công việc (workflow) thông qua Spring Boot và Kotlin

* Cách tạo bảng MySQL và thiết lập Kafka Connector

Tôi đề xuất khóa học này 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 nói về Kafka, CDC, Temporal 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 truy cập và khả năng phục hồi sau sự cố của các startup/tập đoàn lớn

🎯 Những ai muốn học về thiết kế dịch vụ ở cấp độ quy trình làm việc (workflow), thay vì chỉ dừng lại ở các microservices đơn thuần

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

Người tạo ra bài giảng này 🤭

  • Là một nhà phát triển bắt đầu từ một ngành không chuyên, hiện đang làm việc với tư cách là nhà phát triển backend nền tảng tại Pangyo.

  • Mục tiêu của tôi là truyền đạt các phương pháp và lý thuyết phát triển thực tế, đồng thời là một người chia sẻ kiến thức, cùng tạo ra các bài giảng với những người quen có năng lực xung quanh thay vì làm một mình.

  • Nhờ hoạt động chăm chỉ, tôi là người chia sẻ kiến thức đã từng thực hiện phỏng vấn tại Inflearn.

  • Người học chuyên ngành Khoa học máy tính tại một trường đại học ở Seoul

  • Từng làm việc tại các tổ chức tài chính hàng đầu và hiện là nhà phát triển đang đảm nhận vai trò kỹ sư backend và dữ liệu tại Kakao

  • Là nhà phát triển đang cùng với Hong tạo ra nhiều bài giảng đa dạng, góp phần cung cấp những kiến thức và môi trường thực tế.

  • Nhân tài quý giá duy nhất trong nhóm hiện nay có kinh nghiệm sử dụng Workflow

Lưu ý

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

  • 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 backend muốn xây dựng đường truyền dữ liệu (data pipeline) thời gian thực

  • Kỹ sư quan tâm đến tính nhất quán và đồng bộ hóa dữ liệu trong hệ thống phân tán

  • Nhà phát triển quan tâm đến thiết kế kiến trúc microservices

  • Nhà phát triển thử thách bản thân với việc thiết kế hệ thống phân tán và microservices

  • Lập trình viên backend đang trăn trở về khả năng mở rộng của hệ thống xử lý lưu lượng truy cập lớn

  • Nhà phát triển muốn học cách triển khai xử lý sự kiện thời gian thực và đồng bộ hóa dữ liệu bằng cách kết nối MySQL với Kafka.

  • Sinh viên mới tốt nghiệp đang tìm việc và lập trình viên mới vào nghề (junior) gặp khó khăn trong việc học tập vì không đúng chuyên ngành.

  • Nhân viên phát triển server đang thực chiến nhưng lo sợ kinh nghiệm rỗng (kinh nghiệm không thực chất)

Xin chào
Đây là Hong

7,536

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ả

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

35 đánh giá

4.9

35 đánh giá

  • javython님의 프로필 이미지
    javython

    Đánh giá 63

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    Các sơ đồ đa dạng giúp ích rất nhiều trong việc hiểu nội dung.

    • jhong
      Giảng viên

      Chào bạn 잉여인간, mình đã cố gắng cung cấp nhiều tài liệu nhất có thể để hỗ trợ các học viên dễ dàng thấu hiểu nội dung bài học. Cảm ơn bạn vì những đánh giá tốt nhé!

  • km0411park님의 프로필 이미지
    km0411park

    Đánh giá 4

    Đánh giá trung bình 5.0

    5

    33% đã tham gia

    Các bài giảng ngắn gọn chỉ trích xuất những điểm cốt lõi để giải thích nên không có khoảng thời gian nào để cảm thấy nhàm chán cả. Cảm ơn thầy đã giảng dạy một cách gọn gàng tập trung vào những nội dung quan trọng. Em bắt đầu học khóa này vì tò mò về cách thức hoạt động của Kafka và có vẻ như sẽ rất hữu ích.

    • jhong
      Giảng viên

      Xin chào Park!! Tôi đã cố gắng truyền đạt những nội dung hữu ích trong thời gian ngắn nhất có thể. Cảm ơn bạn!!

  • paulmoon008308님의 프로필 이미지
    paulmoon008308

    Đánh giá 111

    Đánh giá trung bình 4.9

    5

    33% đã tham gia

    • cchoii님의 프로필 이미지
      cchoii

      Đánh giá 12

      Đánh giá trung bình 5.0

      5

      93% đã tham gia

      Tôi là một server developer đang phát triển tại Kakao, người duy nhất trong số các developer cung cấp bài giảng cùng với Hong có hiểu biết và đã sử dụng workflow~~ Chính vì vậy mà tôi đã tham gia sâu nhất vào bài giảng này. Thực ra Hong đã từng đề cập đến các kiến trúc như Kafka hay Debezium (CDC) trước đây rồi. Thêm vào đó, tôi đã chuẩn bị một chủ đề bao gồm cả việc đưa workflow vào để tăng tính an toàn trong kiến trúc tổng thể dựa trên EDA. Hy vọng bài giảng này sẽ giúp ích nhiều cho các bạn 😊😊 Chúng tôi sẽ nỗ lực để Hong có thể cùng cung cấp những bài giảng bổ ích và tốt hơn nữa cho các bạn. Mong các bạn tham gia nhiều vào event!! Và hãy mong chờ bài giảng tiếp theo nhé!! Chúc các bạn một ngày tốt lành~

      • jhong
        Giảng viên

        Lần sau chúng ta cùng tạo ra những bài giảng bổ ích hơn nữa nhé 😊😊

    • tttos님의 프로필 이미지
      tttos

      Đánh giá 8

      Đánh giá trung bình 5.0

      5

      96% đã tham gia

      Tôi là một developer đang phát triển server tại Toss và gần đây đã cùng Hong tạo ra khóa học MySQL. Anh chàng Hong quyến rũ lại đã dụ dỗ bạn từ Kakao để tạo ra khóa học workflow này!! Workflow mà tôi biết chỉ có Airflow thôi, nhưng đây là lần đầu tiên tôi thấy nội dung có thể triển khai ở cấp độ client bằng cách sử dụng open source. Đối với tôi đây cũng là chủ đề khá hữu ích nên tôi đã xem rất thú vị. Mong mọi người quan tâm nhiều đến khóa học này và cũng mong mọi người quan tâm nhiều đến khóa học tiếp theo. Tôi sẽ cùng Hong tạo ra những chủ đề hay ho.

      • jhong
        Giảng viên

        Đàn ông quyến rũ là sao... Ý anh là gì vậy 😆😆😆😆 Với tư cách là học trò, em sẽ học hỏi nhiều. Cảm ơn anh.

    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.668.048 ₫