강의

멘토링

커뮤니티

Programming

/

Back-end

Các kỹ thuật xử lý RPC để đảm bảo hiệu suất trong môi trường MSA với hàng trăm dịch vụ do các nhà phát triển từ Kakao và Toss chia sẻ

Khóa học này tập trung vào các kỹ thuật giao tiếp RPC để tối đa hóa hiệu suất trong môi trường MSA (Microservice Architecture) quy mô lớn. Vượt ra ngoài việc thực hành gRPC đơn giản, bạn sẽ học cách triển khai giao tiếp giữa các dịch vụ một cách ổn định và hiệu quả trong môi trường vận hành thực tế nơi hàng trăm microservice hoạt động đồng thời. Dựa trên Golang, khóa học sẽ đề cập đến việc viết cú pháp Protocol Buffers(proto), tự động tạo code và triển khai dịch vụ, cấu trúc của gRPC và những ưu điểm so với RPC truyền thống, cũng như các chiến lược tối ưu hóa hiệu suất với định hướng thực tế. Để những người không chuyên ngành hoặc người mới bắt đầu phát triển server cũng có thể dễ dàng hiểu, khóa học sẽ giải thích từng bước từ khái niệm RPC đến nguyên lý hoạt động bên trong của gRPC, giúp bạn trang bị năng lực thực tế có thể áp dụng ngay vào dịch vụ thực tế.

(4.9) 9 đánh giá

193 học viên

  • Hong
실습 중심
백엔드이해하기
비전공자
웹개발
백엔드개발자
Go
MSA
backend
grpc

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

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

  • "Tại sao cần RPC?" – Hiểu bản chất của giao tiếp hiệu năng cao vượt qua REST

  • gRPC hoàn toàn chinh phục – từ thiết kế proto đến tự động sinh code, xây dựng dịch vụ thực tế

  • Bí quyết chịu đựng hàng trăm microservice – Công khai chiến lược đảm bảo hiệu năng theo phong cách Kakao

Trong môi trường MSA với hàng trăm dịch vụ tồn tại, cần phải xem xét những phần nào để đảm bảo tối ưu hóa và hiệu suất?? 🤔

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

😄 Hong : Tìm người đã xây dựng MSA đến cấp độ core bằng cách áp dụng gRPC

😁Nhà phát triển Kakao : Tôi đây. Không phải toàn bộ đã áp dụng nhưng một phần đang giao tiếp bằng gRPC, hoặc theo như tôi biết thì trong công ty các team khác cũng có sử dụng RPC hoặc JSON-RPC

😁 Nhà phát triển Toss : Bên này cũng đang sử dụng một phần, vì là giao thức nên cũng có sử dụng websocket, và tất nhiên cũng sử dụng giao tiếp RPC, có vẻ như tùy thuộc vào việc đặt tiêu chuẩn về cấp độ core như thế nào.

😄 Hong : Ừ gần đây mình đang suy nghĩ nhiều về việc từ góc độ kiến trúc thì nên cân nhắc những gì, nên kết hợp như thế nào, và mình nghĩ rằng nếu thực sự phải triển khai MSA đến tận core thì gRPC có lẽ là thứ bắt buộc phải đưa vào

😄Nhà phát triển Kakao : Đúng rồi, tôi biết là khi traffic tăng vọt ở Google cũng vậy, không thể dùng HTTP được nên phải sử dụng RPC. Vì càng nhiều service thì chi phí giao tiếp mạng tăng theo cấp số nhân

😄Kakao 개발자 : Tình hình mỗi công ty sẽ khác nhau, nhưng nếu muốn xây dựng MSA mà không sử dụng gRPC thì hơi tiếc Tất nhiên tùy theo tình huống mà sẽ khác nhau

😁 Nhà phát triển Toss : Đúng vậy, tôi cũng đồng cảm với điều đó, chỉ là giao tiếp qua HTTP và triển khai mọi thứ bằng MSA!! Tôi nghĩ có nhiều người như vậy, nhưng thực ra đó không phải là triển khai hoàn hảo

Các bạn có hiểu và đồng cảm với phần nào trong cuộc trò chuyện trước đó không?? 🤔

Mỗi công ty có hoàn cảnh khác nhau, nhưng nếu muốn xây dựng MSA mà không sử dụng gRPC thì hơi tiếc tất nhiên tùy theo tình huống mà khác nhau rồi

Đã triển khai mọi thứ bằng MSA trong khi giao tiếp qua HTTP!! Tôi nghĩ có nhiều người như vậy, nhưng thực ra đó không phải là triển khai hoàn hảo

Về hai nội dung này, bạn nghĩ thế nào?? Trong MSA, với tình huống cấu hình hàng trăm backend, bạn có hiểu tại sao chủ đề này lại được đề cập không??


Câu trả lời nằm ở việc tối ưu hóa mạng bằng gRPC.

Giao tiếp REST truyền thống dựa trên HTTP/1.1 sẽ gặp phải các giới hạn về hiệu suất do overhead của header, quá trình serialize/deserialize chậm, quản lý kết nối và các vấn đề khác trong môi trường có hàng trăm microservice tương tác với nhau. Ngược lại, gRPC cung cấp multiplexing, nén header và tính năng streaming dựa trên HTTP/2, cho phép giao tiếp giữa các service hiệu quả hơn nhiều.

Ngoài ra, bằng cách module hóa business logic theo đơn vị RPC, có thể tách biệt từng chức năng một cách độc lập và thực hiện việc gọi nhanh cũng như truyền dữ liệu. Khi kết hợp Event-Driven Architecture (EDA) với gRPC, có thể truyền tải các sự kiện giữa các service một cách nhanh chóng và đáng tin cậy, đồng thời có thể quản lý từ tối ưu hóa mạng đến retry và xử lý sự cố ở cấp độ platform. Tức là, ngay cả trong tình huống traffic tăng vọt, kiến trúc dựa trên gRPC vẫn đảm bảo được cả tính ổn định và hiệu suất, đồng thời đang khẳng định vị trí là công nghệ cốt lõi có thể tối đa hóa khả năng mở rộng và bảo trì của service.


Không phải là bài gi강 nhàm chán chỉ liệt kê lý thuyết, mà tôi đã chuẩn bị như một hướng dẫn thực chiến để hoàn toàn chinh phục các tính năng cốt lõi về thiết kế sử dụng grpc bằng cách cùng nhau xem xét quá trình hoạt động. 🚀

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

📌 Nền tảng được các lập trình viên senior thực sự áp dụng và sử dụng trong công việc thực tế

* Như nội dung cuộc trò chuyện ban đầu, khóa học được cấu trúc xung quanh các chủ đề mà các lập trình viên đang làm việc tại Kakao, Toss cùng sử dụng. Thông qua đó, hãy học hỏi những bí quyết từ các lập trình viên tài năng.

📌 Khoảng 50 sơ đồ, tệp tóm tắt bài giảng cấu trúc bài giảng phong phú

* Không chỉ là bài giảng giải thích bằng lời nói đơn thuần, mà còn cung cấp mã nguồn thực tế, sơ đồ, sequence diagram, và thêm vào đó là các file tóm tắt ngắn gọn về nội dung bài giảng.

📌 Đây không phải là MSA chỉ nói suông.

* Đây là khóa học giúp bạn có thể nhìn thoáng qua quá trình cần cân nhắc và triển khai những công nghệ nào trong kiến trúc MSA, và bạn có thể thành thạo lý do tại sao gRPC được đưa vào sử dụng để giải quyết những vấn đề cố hữu của kiến trúc này.

📌Nội dung bài giảng được bổ sung liên tục 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ẽ được liên tục bổ sung vào chương 8 để cấu thành bài giảng. Dù là câu hỏi về bài giảng hay câu hỏi không liên quan đến bài giảng, nếu các bạn đặt nhiều câu hỏi, chúng tôi sẽ lựa chọn những câu hỏi hữu ích và cung cấp thêm các chủ đề liên quan hoàn toàn miễn phí chỉ dành riêng cho các học viên.

Chúng tôi khuyến nghị khóa học này cho những người như thế này 👨‍🏫

🎯 Lập trình viên không chuyên ngành nhưng tò mò về quan điểm MSA với hàng trăm dịch vụ

🎯 Lập trình viên junior chỉ biết HTTP mà không biết giao tiếp RPC

🎯 Dành cho những ai quan tâm đến khả năng mở rộng traffic và tính tương thích của startup/doanh nghiệp lớn

🎯 Không phải chỉ đơn giản là triển khai MSA, mà là dành cho những người chuẩn bị việc làm muốn suy nghĩ về những khía cạnh này và thử áp dụng

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

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

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

  • Mục tiêu là chia sẻ phương pháp phát triển thực tế và lý thuyết phát triển, là người chia sẻ kiến thức tạo ra các khóa học cùng với những người quen có năng lực xung quanh chứ không phải một mình

  • Người chia sẻ kiến thức đã được Inflearn phỏng vấn nhờ hoạt động tích cực

  • Người tốt nghiệp chuyên ngành Công nghệ Thông tin tại các trường đại học ở Seoul

  • Đã trải qua ngành tài chính hạng nhất và hiện tại là developer đang phát triển backend và data engineer tại Kakao

  • Nhà phát triển đang đóng góp vào việc tạo ra các khóa học đa dạng cùng với Hong và cung cấp kiến thức cũng như môi trường thực tế

  • Tốt nghiệp chuyên ngành Khoa học Máy tính tại tỉnh lẻ, từng làm phát triển phần mềm tại Naver và hiện đang làm phát triển backend tại Toss - một lập trình viên server

  • Lập trình viên luôn bị Hong mắng nhiều vì thiếu thời gian...

  • Nhà phát triển mơ ước đạt được tự do tài chính và trở thành lập trình viên độc lập

Lưu ý

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

  • Golang

    • go1.23


  • IDE

    • GoLand IDEA

  • OS

    • Apple M3 Air

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

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

  • MSA를 제대로 hiểu muốn server developer – Muốn học cấu trúc giao tiếp của môi trường quy mô lớn thực tế

  • Kỹ sư muốn áp dụng gRPC vào thực tế – Những người muốn khám phá paradigm giao tiếp mới vượt qua REST

  • Người mới bắt đầu học lập trình không chuyên ngành – Những ai muốn học từng bước từ khái niệm đến code và rèn luyện cảm giác thực tế trong công việc

  • Người học muốn nghiên cứu và học hỏi cấu trúc backend của các dịch vụ lớn như Kakao

Xin chào
Đây là

4,548

Học viên

325

Đánh giá

115

Trả lời

4.7

Xếp hạng

18

Các khóa học

자기 소개

집에서 빈둥대다 개발에 흥미를 느껴 개발 공부를 시작하였고 현재는 판교에서 플랫폼 서버 개발을 담당하여 진행하고 있습니다.

 

제가 공부를 했던 방법과 실무에서 접하실 수 있는 여러가지 문제점들과 해결책을 여러분들에게 제공하고 싶어 지식공유자 활동을 이어나가고 있습니다.

 

강의는 오로지 저만의 지식을 통해 만들어지지 않습니다. 모든 강의는 함께하시는 분들이 계십니다.

 

지식공유자 경력

[前] 샌드박스 블록체인 개발자

[前] 넥슨 자회사 백엔드 개발자

[] 판교에서 고여가는 서버 개발자

 

인터뷰 이력

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

Tất cả

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

9 đánh giá

4.9

9 đánh giá

  • paulmoon008308님의 프로필 이미지
    paulmoon008308

    Đánh giá 38

    Đánh giá trung bình 4.9

    5

    25% đã tham gia

    • seungteakoh9676님의 프로필 이미지
      seungteakoh9676

      Đánh giá 3

      Đánh giá trung bình 5.0

      5

      100% đã tham gia

      • hsk7413388님의 프로필 이미지
        hsk7413388

        Đánh giá 8

        Đánh giá trung bình 5.0

        5

        63% đã tham gia

        • y2gon28999님의 프로필 이미지
          y2gon28999

          Đánh giá 3

          Đánh giá trung bình 4.3

          4

          33% đã tham gia

          • abcd123123님의 프로필 이미지
            abcd123123

            Đánh giá 326

            Đánh giá trung bình 5.0

            5

            13% đã tham gia

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

            1.045.306 ₫

            23%

            1.373.830 ₫

            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!