inflearn logo

Kafka dễ học nhất qua hướng dẫn của người phỏng vấn Kakao

Xây dựng cụm Kafka bằng Spring Boot 3.x + Kotlin và phát triển hệ thống xử lý đơn hàng có khả năng mở rộng, hỗ trợ truyền phát sự kiện theo thời gian thực bằng cách sử dụng CDC PostgreSQL, Debezium Connect và lược đồ Apache Avro.

(4.8) 48 đánh giá

720 học viên

Độ khó Nhập môn

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

Java
Java
Spring
Spring
Kotlin
Kotlin
Spring Boot
Spring Boot
Kafka
Kafka
Java
Java
Spring
Spring
Kotlin
Kotlin
Spring Boot
Spring Boot
Kafka
Kafka

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

4.8

5.0

devHand

89% đã tham gia

Tôi nghĩ không nên nói rằng mình hiểu Kafka cho đến khi có thể giải thích nội dung trong khóa học này cho người khác. Đây thực sự là một khóa học rất hữu ích. Tôi cũng đã từng sử dụng đơn giản chỉ với Producer & Consumer thôi, nhưng không ngờ rằng cách sử dụng Kafka lại có thể đa dạng đến vậy. Thực tế là ngay cả anh mentor có 15 năm kinh nghiệm ở công ty cũng nói rằng chưa từng áp dụng những chủ đề như thế này... Dù là junior developer hay senior developer thì cũng phải nghe khóa học này, đây thực sự là một chủ đề quá tuyệt vời. Nếu nói về nhược điểm một cách thực tế thì tôi nghĩ sẽ tốt hơn nếu có thêm code ứng dụng Kafka ở client level. Có lẽ vì khóa học tập trung vào Kafka nên phần này còn thiếu, và sẽ tốt hơn nếu những ai đã hiểu Kafka ở mức độ nào đó mới nghe. Như trong khóa học cũng có đề cập, có những phần không được đi sâu chi tiết, mà những phần đó có thể quan trọng từ góc độ phát triển, ngoài những phần này ra thì đây thực sự là một khóa học quá tuyệt vời. Cảm ơn anh đã tạo ra khóa học tốt như vậy.

5.0

유쾌한 캥거루

96% đã tham gia

Đây là một khóa học tập trung chắc chắn hơn vào Kafka thay vì tập trung vào Java & Spring. Thành thật mà nói, với mức giá này mà có thể biết được những cách ứng dụng đa dạng và tài liệu về Kafka như vậy thì thực sự cảm thấy rất đáng giá. Tất nhiên phần client level có vẻ hơi thiếu sót một chút, nhưng vì thầy liên tục nhấn mạnh rằng đã tập trung vào Kafka nên tôi nghĩ phần này sẽ không thành vấn đề. Cảm ơn thầy vì khóa học hay 😊

5.0

Choi

33% đã tham gia

Tôi đang quay bài giảng và là một developer đang làm việc tại Kakao với khá nhiều cổ phần?? Tôi cũng sử dụng Kafka rất nhiều trong công việc thực tế!! Nếu thực sự đến mức production level thì khá phức tạp và thực tế là chỉ riêng bài giảng này thôi thì có phần hơi thiếu sót 😭😭 Nhưng như đã nói trong video giới thiệu bài giảng, tôi đã quay dựa trên tiêu chí nên truyền đạt những thông tin nào cho các junior developer và developer mới vào nghề, mong các bạn hiểu điều này!! Vì vậy tôi đã tập trung quay về hướng học tập, giới thiệu tổng quan về Kafka này và các bài thực hành triển khai. - Nếu lấy ví dụ trong thực tế, thì có những phần như điều kiện commit offset, các pattern ngăn chặn việc bỏ sót tiêu thụ event như DLQ!! Dù vậy tôi đã cấu trúc bài giảng để có thể giúp ích nhiều nhất cho các bạn, nên mong các bạn học về Kafka thông qua bài giảng này một cách dễ hiểu nhất, sâu sắc và nhanh chóng. Mong nhận được nhiều quan tâm! Cảm ơn các bạn!!

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

  • Hệ thống nhắn tin bất đồng bộ sử dụng Apache Kafka Producer/Consumer để phát hành và tiêu thụ các sự kiện khối lượng lớn

  • Hệ thống xử lý luồng sử dụng Kafka Streams để lọc dữ liệu theo thời gian thực, tổng hợp theo cửa sổ thời gian và quản lý kho lưu trữ trạng thái

  • Hệ thống thu thập dữ liệu thay đổi để ghi nhận theo thời gian thực các thay đổi trong cơ sở dữ liệu PostgreSQL bằng Debezium CDC

  • Hệ thống trao đổi dữ liệu hỗ trợ tuần tự hóa thông điệp an toàn kiểu dữ liệu và tiến hóa schema bằng cách sử dụng Apache Avro Schema

  • Cơ sở hạ tầng container quản lý tích hợp cụm Kafka, Zookeeper, PostgreSQL và Debezium Connect bằng Docker Compose

  • Logic nghiệp vụ dựa trên sự kiện, sử dụng Event-Driven Architecture để phát hiện gian lận theo thời gian thực, lọc các đơn hàng giá trị cao và tổng hợp số liệu thống kê doanh thu

Kiến trúc dựa trên sự kiện sử dụng MSQ được dùng như thế nào?? 🤔

Bạn đã từng nghe về 'kiến trúc hướng sự kiện (Event-Driven Architecture) sử dụng hàng đợi tin nhắn (Message Queue)' chưa? 🤔


Dù đã trở thành nền tảng cốt lõi của các hệ thống backend hiện đại, nhưng khi bắt tay áp dụng vào thực tế, bạn có thể cảm thấy khá bối rối. Làm thế nào để xử lý ổn định lượng dữ liệu khổng lồ, kết nối linh hoạt nhiều dịch vụ và nâng cao khả năng mở rộng của toàn bộ hệ thống? Câu trả lời nằm ở Kafka và Kotlin.

Khóa học này không phải là một khóa học nhàm chán chỉ liệt kê lý thuyết, mà được xây dựng như một hướng dẫn thực chiến giúp bạn hoàn toàn làm chủ các chức năng cốt lõi của Kafka thông qua việc cùng tìm hiểu quá trình triển khai và vận hành thực tế. 🚀

Đặc điểm của khóa học ⚡

📌Bao gồm Java, Spring, Spring Boot, Kafka và Kotlin.

* Học cách viết mã ngắn gọn và ổn định hơn bằng ngôn ngữ hiện đại Kotlin thay vì Java.

* Học các bí quyết tích hợp Kafka một cách hoàn hảo với Spring Boot, framework backend phổ biến nhất.

📌 Đang thiết lập môi trường thực hành chỉ với một cú nhấp bằng Docker Compose.

* Kafka, Zookeeper, Schema Registry, Kafka Connect và các thành phần nền tảng dữ liệu phức tạp khác có thể dễ dàng được thiết lập chỉ bằng một lệnh.

* Tiết kiệm thời gian thiết lập môi trường phát triển và chỉ tập trung vào việc phát triển logic cốt lõi.

📌 Vượt ra ngoài nhắn tin đơn giản, thiết kế pipeline dữ liệu thực tế

* Không chỉ đơn thuần gửi và nhận tin nhắn, nội dung còn hướng dẫn cách quản lý schema dữ liệu và truyền dữ liệu ổn định bằng cách sử dụng Avro và Schema Registry.

* Tìm hiểu bí quyết giúp toàn bộ hệ thống vận hành ổn định ngay cả khi cấu trúc dữ liệu thay đổi.

📌 Xử lý và phân tích dữ liệu thời gian thực bằng Kafka Streams API

* Học cách chuyển đổi và tổng hợp dữ liệu theo thời gian thực bằng Kafka Streams mà không cần cụm riêng biệt.

* Thông qua các ví dụ thực tiễn như thống kê doanh thu theo thời gian thực và phân tích hoạt động của người dùng, bạn sẽ học các kỹ thuật xử lý luồng có trạng thái (Stateful).

📌 Triển khai mẫu CDC (Change Data Capture) bằng Debezium

* Triển khai mẫu CDC bằng Debezium để phát hiện các thay đổi trong cơ sở dữ liệu theo thời gian thực và truyền chúng đến Kafka topic.

* Làm chủ công nghệ cốt lõi để xây dựng kiến trúc hướng sự kiện bằng cách tích hợp cơ sở dữ liệu với Kafka.

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

Nhà phát triển backend

Tôi chỉ biết viết API và sử dụng Database.

Kỹ sư giải pháp kiến trúc

Cần xây dựng cấu trúc dự án và kiến trúc có khả năng mở rộng.

người đang chuẩn bị xin việc

Tôi muốn tìm hiểu về kiến trúc và cấu trúc có khả năng mở rộng.

Trong khóa học, chúng ta sẽ tìm hiểu những nội dung như thế này. 🤔

  1. Producer & Consumer [ Phát hành và đăng ký dữ liệu Kafka ]

  2. Topic & Partition [ Lưu trữ dữ liệu phân tán và xử lý song song ]

  3. Avro & Schema Registry [ Quản lý schema dữ liệu ổn định và tuần tự hóa ]

  4. Kafka Connect & Debezium [ Thu thập dữ liệu thay đổi trong DB theo thời gian thực (CDC) ]

  5. Kafka Streams API [ Xử lý và phân tích luồng dữ liệu thời gian thực ]

  6. Xử lý luồng có trạng thái [ Tổng hợp dữ liệu bằng trạng thái ]

  7. Interactive Queries [ API truy vấn dữ liệu thời gian thực đang được xử lý ]

  8. Consumer Group & Rebalancing [ Mở rộng Consumer và ứng phó sự cố ]

  9. Event-Driven Architecture [ Thiết kế hệ thống dựa trên sự kiện ]

  10. Các sơ đồ minh họa đa dạng [ bao gồm khoảng 36 sơ đồ ]


Tại sao phải học Kafka??

Rất đơn giản! Hiện nay, nhiều doanh nghiệp đã áp dụng kiến trúc hướng sự kiện bằng cách sử dụng Kafka, nhờ đó triển khai được sự kết hợp lỏng lẻo.

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

  • Bắt đầu từ một người không chuyên ngành, hiện đang là lập trình viên làm việc với vai trò nhà phát triển backend nền tảng tại Pangyo

  • Mục tiêu là truyền đạt các phương pháp phát triển và tư duy phát triển thực tế, đồng thời là người chia sẻ kiến thức tạo khóa học cùng những người quen tài năng xung quanh thay vì làm một mình

  • Người chia sẻ kiến thức từng thực hiện phỏng vấn trên Inflearn nhờ tích cực hoạt động.

Những người đã tham gia khóa học này

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

  • Một nhà phát triển từng làm việc tại ngân hàng tài chính cấp một và hiện đang phát triển với vai trò kỹ sư backend và kỹ sư dữ liệu tại Kakao

  • Lập trình viên cùng Hong xây dựng nhiều khóa học đa dạng và đóng góp vào việc cung cấp kiến thức cùng môi trường thực tế.

Lưu ý trước khi tham gia khóa học

Kiến thức cần có và những điều cần lưu ý

  • java

    • java 17.0.12 2024-07-16 LTS

  • IDE

    • intelliJ

  • Docker

    • Docker phiên bản 28.0.0, bản dựng f9ced58158


Chúng tôi đang vận hành một phòng trò chuyện 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?

  • Lập trình viên backend mong muốn phát triển từ cấp junior lên mid-level

  • Lập trình viên muốn tích lũy kinh nghiệm phát triển dịch vụ theo thời gian thực

  • Lập trình viên tầm trung muốn phát triển thành lập trình viên cấp cao

  • Ứng viên đang chuẩn bị xin việc muốn củng cố hồ sơ năng lực

  • Lập trình viên đang lên kế hoạch chuyển việc bằng cách mở rộng công nghệ sử dụng

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

  • Có kiến thức cơ bản về Spring sẽ rất hữu ích.

Xin chào
Đây là Hong

Xác minh Inflearn

Xác minh sự nghiệp

10,237

Học viên

609

Đánh giá

175

Trả lời

4.8

Xếp hạng

30

Các khóa học

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ó, hiện tại tôi đang đảm nhận việc phát triển máy chủ nền tảng (platform server) 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 khác nhau 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 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 Sandbox IP

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

[Hiện tại] Nhà phát triển server đang làm việc lâu năm tại Pangyo

 

[Lịch sử phỏng vấn]

[Yêu cầu khác]

[Trang web chính thức]

Thêm

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

Tất cả

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

48 đánh giá

4.8

48 đánh giá

  • seungsu8848님의 프로필 이미지
    seungsu8848

    Đánh giá 4

    ∙

    Đánh giá trung bình 5.0

    5

    89% đã tham gia

    Đây là một khóa học tuyệt vời để nhanh chóng nắm bắt toàn bộ nội dung về Kafka. Ngoài ra, giảng viên đã chỉ ra những nội dung cốt lõi nên tôi rất khuyến khích những ai chưa quen thuộc với Kafka nên xem khóa học này.

    • jhong
      Giảng viên

      Xin chào anh Kim Seung Su, cảm ơn anh đã để lại đánh giá tốt. Tôi sẽ cố gắng cung cấp những bài giảng thú vị và bổ ích hơn nữa trong tương lai. Cảm ơn anh.

  • kask814587762님의 프로필 이미지
    kask814587762

    Đánh giá 6

    ∙

    Đánh giá trung bình 5.0

    5

    96% đã tham gia

    Tôi được giao vai trò triển khai kafka trong công ty, và tôi cảm thấy đã học được rất nhiều thứ thông qua khóa học này. Đây có vẻ là một khóa học hoàn hảo được cấu trúc để có thể trải nghiệm từ mô hình sản xuất tiêu thụ đơn giản đến các cách sử dụng đa dạng hơn.

    • jhong
      Giảng viên

      Xin chào bạn 우당탕탕! Công ty bạn đang triển khai kafka đấy!! Đây là bằng chứng cho thấy dịch vụ đang ngày càng phát triển 😊😊 Chúc mừng bạn :) Như bạn đã đề cập, đây là khóa học được chuẩn bị với chủ đề về các cách sử dụng đa dạng. Hy vọng sẽ giúp ích rất nhiều cho bạn. Tôi sẽ chuẩn bị những khóa học bổ ích hơn nữa trong tương lai. Cảm ơn bạn :)

  • cchoii님의 프로필 이미지
    cchoii

    Đánh giá 12

    ∙

    Đánh giá trung bình 5.0

    5

    33% đã tham gia

    Tôi đang quay bài giảng và là một developer đang làm việc tại Kakao với khá nhiều cổ phần?? Tôi cũng sử dụng Kafka rất nhiều trong công việc thực tế!! Nếu thực sự đến mức production level thì khá phức tạp và thực tế là chỉ riêng bài giảng này thôi thì có phần hơi thiếu sót 😭😭 Nhưng như đã nói trong video giới thiệu bài giảng, tôi đã quay dựa trên tiêu chí nên truyền đạt những thông tin nào cho các junior developer và developer mới vào nghề, mong các bạn hiểu điều này!! Vì vậy tôi đã tập trung quay về hướng học tập, giới thiệu tổng quan về Kafka này và các bài thực hành triển khai. - Nếu lấy ví dụ trong thực tế, thì có những phần như điều kiện commit offset, các pattern ngăn chặn việc bỏ sót tiêu thụ event như DLQ!! Dù vậy tôi đã cấu trúc bài giảng để có thể giúp ích nhiều nhất cho các bạn, nên mong các bạn học về Kafka thông qua bài giảng này một cách dễ hiểu nhất, sâu sắc và nhanh chóng. Mong nhận được nhiều quan tâm! Cảm ơn các bạn!!

    • jhong
      Giảng viên

      Lần này cũng cảm ơn anh đã giúp đỡ như vậy!! Chắc anh bận lắm 😭😭 Em cũng biết ơn nên tuần này em dậy lúc 3-4 giờ sáng mỗi ngày để quay phim!! Hãy cùng nhau tạo ra những bài giảng bổ ích hơn nữa nhé 😊😊

  • jayuffh225008님의 프로필 이미지
    jayuffh225008

    Đánh giá 23

    ∙

    Đánh giá trung bình 4.8

    Đã chỉnh sửa

    2

    93% đã tham gia

    Bài giảng có phần không được tận tâm cho lắm. Tôi không đề xuất khóa học này cho những người lần đầu tiếp cận với Kafka.

    • jhong
      Giảng viên

      Chào bạn jayuh22, cảm ơn bạn đã phản hồi. Có lẽ nội dung về Kafka này thực sự không hề dễ dàng. Vì vậy, mình đã muốn diễn giải những nội dung mà các bạn có thể nắm bắt được ít nhất là về mặt khái niệm, và bạn không nhất thiết phải hiểu hết tất cả đâu ㅠ.ㅠ Mình đã muốn truyền tải thật nhiều phần với hy vọng rằng nếu bạn biết qua ở đâu đó thì sau này có thể sẽ nhớ lại, nhưng có vẻ như điều này chưa thực sự phù hợp với bạn... Dù bạn đang trong quá trình chuẩn bị xin việc, mình nghĩ rằng việc ôn tập trước những phần bạn có thể hiểu trong nội dung mình chia sẻ, sau đó mới học đến những phần khó hơn sẽ giúp ích cho quá trình học tập của bạn. Thực tế, đối với một người đang chuẩn bị xin việc thì việc hiểu ngay về bản thân Kafka sẽ khá khó khăn. Vì nó là sự kết hợp của các lý thuyết phát triển và các pattern thông thường... nên mình nghĩ bạn sẽ cảm thấy độ khó hơi cao ㅠㅠ Lần tới mình sẽ lưu ý hơn để cung cấp những nội dung tốt hơn nữa.

  • jycforest29dev4675님의 프로필 이미지
    jycforest29dev4675

    Đánh giá 2

    ∙

    Đánh giá trung bình 3.5

    3

    37% đã tham gia

    Phần sao chép code quá nhiều và không giải thích chi tiết cách sử dụng API hay method nên phải tự tìm hiểu hết. Có thể sẽ dễ dàng hơn nếu có một chút kiến thức nền tảng nhưng nghi ngờ liệu có phù hợp với người mới bắt đầu học Kafka không.

    • jhong
      Giảng viên

      Xin chào jy c, cảm ơn bạn đã góp ý. Về lý do tiến hành thông qua việc copy thì thực ra tôi nghĩ không có lý do gì phải gõ từng cái một để tiến hành. Có lẽ vì tôi nghĩ việc chỉ viết ngôn ngữ lập trình không có ý nghĩa lớn lắm nên đã cấu trúc như vậy. Thêm vào đó, về độ khó và đối tượng của khóa học, tôi sẽ xem xét và điều chỉnh thêm. Cảm ơn bạn!

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!

Giảm 25% cho thành viên mới

1.081.769 ₫

25%

1.442.359 ₫