Ưu đãi trong tuần: Nhập mã UD50 giảm 50k cho đơn từ 300k!
Trang chủ
Menu

Hands-On Go : Microservices With Protocol Buffers & gRPC

Thực Hành Go: Xây Dựng Microservices Với Protocol Buffers & gRPC

Thực Hành Go: Xây Dựng Microservices Với Protocol Buffers & gRPC

Triển khai Protocol Buffers (protobuf) & gRPC bằng ngôn ngữ Go (Golang) trên kiến trúc microservice

4.6
(122 đánh giá)
1,967 học viên
Giảng viên
Timotius Pamungkas
Phụ đề Việt chất lượng cao Phụ đề tiếng Anh Bán chạy Đánh giá cao
50.000đ 349.000đ -86%
✓ Xem giỏ hàng và thanh toán
Bao gồm phụ đề tiếng Việt, tiếng Anh
9.5 giờ video
200 bài giảng
Truy cập vĩnh viễn
Học trên mọi thiết bị
Cập nhật: 30/05/2026

Bạn sẽ học được gì

Protocol Buffers (Protobuf) là gì và cách sử dụng để truyền dữ liệu
Định nghĩa Schema Protocol Buffers: kiểu dữ liệu, danh sách, cú pháp, v.v.
Quá trình phát triển (Evolution) của Schema Protocol Buffers
Triển khai Protocol Buffers với ngôn ngữ lập trình Go
Triển khai 4 loại gRPC API bằng Golang: unary, server streaming, client streaming và bi-directional
Sử dụng cơ sở dữ liệu PostgreSQL với gorm: Go Object Relational Mapping (ORM)
Sử dụng Kiến trúc Phần mềm Hexagon (Port & Adapters) để xây dựng ứng dụng ngân hàng trên nền gRPC API với Golang
Xây dựng gRPC có khả năng phục hồi: sử dụng timeout / deadline, retry và circuit breaker
Xử lý lỗi gRPC, mã trạng thái, metadata, interceptor
Cổng kết nối (gateway) gRPC - REST API
Tạo tài liệu OpenAPI cho gRPC API

Yêu cầu

Yêu cầu có kiến thức cơ bản về ngôn ngữ Go. Đây KHÔNG phải khóa học cơ bản về Go. Bạn cần biết cú pháp Go, module và package
Yêu cầu kiến thức cơ bản về git và github: tạo repository, branch, pull, push và merge. Đây KHÔNG phải khóa học git cơ bản
Quen thuộc với REST API và JSON sẽ có ích, nhưng không bắt buộc

Đối tượng phù hợp

Kỹ sư phần mềm, kiến trúc sư kỹ thuật, quản lý kỹ thuật muốn tìm hiểu cách triển khai Protocol Buffers bằng ngôn ngữ Go
Những người đam mê Golang

Nội dung khóa học

51 phần • 200 bài giảng
1 Lời chào mừng
2 Cấu trúc & Nội dung Khóa học
3 Cách Nhận Giá Trị Tối Đa Từ Khóa Học Này
1 Yêu cầu & Công cụ
2 Tải Script & Mã nguồn
1 Giới thiệu Protocol Buffers
2 Viết Protobuf - Hướng dẫn Phong cách & Quy ước
3 Viết Protobuf - Cấu trúc Tệp Khóa học
1 Phương pháp Học
1 Lý thuyết: Hello Protobuf
2 Nhiệm vụ: Hello Protobuf
3 Thử thách Có Hướng dẫn: Hello Protobuf
4 Lời giải: Hello Protobuf
1 Lý thuyết: Kiểu Dữ liệu Scalar
2 Nhiệm vụ: Kiểu Dữ liệu Scalar
3 Thử thách Có Hướng dẫn: Kiểu Dữ liệu Scalar
4 Lời giải: Kiểu Dữ liệu Scalar
1 Mẹo: Makefile
1 Lý thuyết: Trường Lặp lại, Liệt kê, Ghi chú
2 Nhiệm vụ: Trường Lặp lại, Liệt kê, Ghi chú
3 Thử thách Có Hướng dẫn: Trường Lặp lại, Liệt kê, Ghi chú
4 Lời giải: Trường Lặp lại, Liệt kê, Ghi chú
1 Lý thuyết: Protobuf - JSON
2 Nhiệm vụ: Protobuf - JSON
3 Thử thách Có Hướng dẫn: Protobuf - JSON
4 Lời giải: Protobuf - JSON
1 Lý thuyết: Sử dụng Message Khác làm Kiểu Dữ liệu
2 Nhiệm vụ: Sử dụng Message Khác làm Kiểu Dữ liệu
3 Thử thách Có Hướng dẫn: Sử dụng Message Khác làm Kiểu Dữ liệu
4 Lời giải: Sử dụng Message Khác làm Kiểu Dữ liệu
1 Lý thuyết: Nhiều Tệp & Nhập Message
2 Nhiệm vụ: Nhiều Tệp & Nhập Message
3 Thử thách Có Hướng dẫn: Nhiều Tệp & Nhập Message
4 Lời giải: Nhiều Tệp & Nhập Message
1 Lý thuyết: Kiểu Message Lồng nhau
2 Nhiệm vụ: Kiểu Message Lồng nhau
3 Thử thách Có Hướng dẫn: Kiểu Message Lồng nhau
4 Lời giải: Kiểu Message Lồng nhau
1 Lý thuyết: Package
2 Nhiệm vụ: Package
3 Thử thách Có Hướng dẫn: Package
4 Lời giải: Package
1 Lý thuyết: Any
2 Nhiệm vụ: Any
3 Thử thách Có Hướng dẫn: Any
4 Lời giải: Any
1 Lý thuyết: Oneof
2 Nhiệm vụ: Oneof
3 Thử thách Có Hướng dẫn: Oneof
4 Lời giải: Oneof
1 Lý thuyết: Map
2 Nhiệm vụ: Map
3 Thử thách Có Hướng dẫn: Map
4 Lời giải: Map
1 Lý thuyết: Đọc / Ghi Protobuf vào Đĩa
2 Nhiệm vụ: Đọc / Ghi Protobuf vào Đĩa
3 Thử thách Có Hướng dẫn: Đọc / Ghi Protobuf vào Đĩa
4 Lời giải: Đọc / Ghi Protobuf vào Đĩa
1 Lý thuyết: Đọc / Ghi Protobuf dưới dạng JSON
2 Nhiệm vụ: Đọc / Ghi Protobuf dưới dạng JSON
3 Thử thách Có Hướng dẫn: Đọc / Ghi Protobuf dưới dạng JSON
4 Lời giải: Đọc / Ghi Protobuf dưới dạng JSON
1 Lý thuyết: Phát triển Schema
2 Nhiệm vụ: Phát triển Schema
3 Thử thách Có Hướng dẫn: Phát triển Schema
4 Lời giải: Phát triển Schema
1 Mẹo: Ảnh hưởng của Số Trường
1 Lý thuyết: Các Kiểu Dữ liệu Bổ sung
2 Nhiệm vụ: Các Kiểu Dữ liệu Bổ sung
3 Thử thách Có Hướng dẫn: Các Kiểu Dữ liệu Bổ sung
4 Lời giải: Các Kiểu Dữ liệu Bổ sung
1 Tùy chọn Protobuf
1 Mẹo: Xác thực Trường
1 Lý thuyết: Giới thiệu gRPC
2 Quan điểm: Có nên sử dụng gRPC hay không?
3 Lý thuyết: Protocol Buffers & gRPC
1 Lý thuyết: Kho lưu trữ Protocol Buffers
2 Nhiệm vụ: Kho lưu trữ Protocol Buffers
3 Thử thách Có Hướng dẫn: Kho lưu trữ Protocol Buffers
4 Lời giải: Kho lưu trữ Protocol Buffers
1 Lý thuyết: Hello gRPC (Máy chủ Unary)
2 Nhiệm vụ: Hello gRPC (Máy chủ Unary)
3 Thử thách Có Hướng dẫn: Hello gRPC (Máy chủ Unary)
4 Lời giải: Hello gRPC (Máy chủ Unary)
1 Lý thuyết: Hello gRPC (Máy khách Unary)
2 Nhiệm vụ: Hello gRPC (Máy khách Unary)
3 Thử thách Có Hướng dẫn: Hello gRPC (Máy khách Unary)
4 Lời giải: Hello gRPC (Máy khách Unary)
1 Lý thuyết: Hello gRPC (Server Stream)
2 Nhiệm vụ: Hello gRPC (Server Stream)
3 Thử thách Có Hướng dẫn: Hello gRPC (Server Stream)
4 Lời giải: Hello gRPC (Server Stream)
1 Lý thuyết: Hello gRPC (Client Stream)
2 Nhiệm vụ: Hello gRPC (Client Stream)
3 Thử thách Có Hướng dẫn: Hello gRPC (Client Stream)
4 Lời giải: Hello gRPC (Client Stream)
1 Lý thuyết: Hello gRPC (Bi-Directional Stream)
2 Nhiệm vụ: Hello gRPC (Bi-Directional Stream)
3 Thử thách Có Hướng dẫn: Hello gRPC (Bi-Directional Stream)
4 Lời giải: Hello gRPC (Bi-Directional Stream)
1 Lý thuyết: Ứng dụng Ngân hàng - Chuẩn bị gRPC
2 Nhiệm vụ: Ứng dụng Ngân hàng - Chuẩn bị gRPC
3 Thử thách Có Hướng dẫn: Ứng dụng Ngân hàng - Chuẩn bị gRPC
4 Lời giải: Ứng dụng Ngân hàng - Chuẩn bị gRPC
1 Lý thuyết: Ứng dụng Ngân hàng - Chuẩn bị Cơ sở dữ liệu
2 Nhiệm vụ: Ứng dụng Ngân hàng - Chuẩn bị Cơ sở dữ liệu
3 Thử thách Có Hướng dẫn: Ứng dụng Ngân hàng - Chuẩn bị Cơ sở dữ liệu
4 Lời giải: Ứng dụng Ngân hàng - Chuẩn bị Cơ sở dữ liệu
1 Lý thuyết: Ứng dụng Ngân hàng - Cấu trúc Cơ sở dữ liệu
2 Nhiệm vụ: Ứng dụng Ngân hàng - Cấu trúc Cơ sở dữ liệu
3 Thử thách Có Hướng dẫn: Ứng dụng Ngân hàng - Cấu trúc Cơ sở dữ liệu
4 Lời giải: Ứng dụng Ngân hàng - Cấu trúc Cơ sở dữ liệu
1 Lý thuyết: Ứng dụng Ngân hàng - Lấy Số dư Hiện tại
2 Nhiệm vụ: Ứng dụng Ngân hàng - Lấy Số dư Hiện tại
3 Thử thách Có Hướng dẫn: Ứng dụng Ngân hàng - Lấy Số dư Hiện tại
4 Lời giải: Ứng dụng Ngân hàng - Lấy Số dư Hiện tại
1 Lý thuyết: Ứng dụng Ngân hàng - Lấy Tỷ giá Hối đoái
2 Nhiệm vụ: Ứng dụng Ngân hàng - Lấy Tỷ giá Hối đoái
3 Thử thách Có Hướng dẫn: Ứng dụng Ngân hàng - Lấy Tỷ giá Hối đoái
4 Lời giải: Ứng dụng Ngân hàng - Lấy Tỷ giá Hối đoái
1 Lý thuyết: Ứng dụng Ngân hàng - Tổng hợp Giao dịch
2 Nhiệm vụ: Ứng dụng Ngân hàng - Tổng hợp Giao dịch
3 Thử thách Có Hướng dẫn: Ứng dụng Ngân hàng - Tổng hợp Giao dịch
4 Lời giải: Ứng dụng Ngân hàng - Tổng hợp Giao dịch
1 Lý thuyết: Ứng dụng Ngân hàng - Chuyển tiền Nhiều lần
2 Nhiệm vụ: Ứng dụng Ngân hàng - Chuyển tiền Nhiều lần
3 Thử thách Có Hướng dẫn: Ứng dụng Ngân hàng - Chuyển tiền Nhiều lần
4 Lời giải: Ứng dụng Ngân hàng - Chuyển tiền Nhiều lần
1 Lý thuyết: Trạng thái & Lỗi gRPC - Phần 1
2 Nhiệm vụ: Trạng thái & Lỗi gRPC - Phần 1
3 Thử thách Có Hướng dẫn: Trạng thái & Lỗi gRPC - Phần 1
4 Lời giải: Trạng thái & Lỗi gRPC - Phần 1
1 Lý thuyết: Trạng thái & Lỗi gRPC - Phần 2
2 Nhiệm vụ: Trạng thái & Lỗi gRPC - Phần 2
3 Thử thách Có Hướng dẫn: Trạng thái & Lỗi gRPC - Phần 2
4 Lời giải: Trạng thái & Lỗi g
1 Theory : gRPC Status & Errors - Part 3
2 Task : gRPC Status & Errors - Part 3
3 Guided Challenge : gRPC Status & Errors - Part 3
4 Solution : gRPC Status & Errors - Part 3
1 Theory : Error Handling on gRPC Client
2 Bài tập: Xử lý lỗi trên gRPC Client
3 Thử thách có hướng dẫn: Xử lý lỗi trên gRPC Client
4 Lời giải: Xử lý lỗi trên gRPC Client
1 Lý thuyết: Khả năng phục hồi - Phía Server
2 Bài tập: Khả năng phục hồi - Phía Server
3 Thử thách có hướng dẫn: Khả năng phục hồi - Phía Server
4 Lời giải: Khả năng phục hồi - Phía Server
1 Lý thuyết: Khả năng phục hồi - Thời gian chờ (Deadline)
2 Bài tập: Khả năng phục hồi - Thời gian chờ (Deadline)
3 Thử thách có hướng dẫn: Khả năng phục hồi - Thời gian chờ (Deadline)
4 Lời giải: Khả năng phục hồi - Thời gian chờ (Deadline)
1 Lý thuyết: Khả năng phục hồi - Thử lại
2 Bài tập: Khả năng phục hồi - Thử lại
3 Thử thách có hướng dẫn: Khả năng phục hồi - Thử lại
4 Lời giải: Khả năng phục hồi - Thử lại
1 Lý thuyết: Khả năng phục hồi - Cầu chì (Circuit Breaker)
2 Bài tập: Khả năng phục hồi - Cầu chì (Circuit Breaker)
3 Thử thách có hướng dẫn: Khả năng phục hồi - Cầu chì (Circuit Breaker)
4 Lời giải: Khả năng phục hồi - Cầu chì (Circuit Breaker)
1 Lý thuyết: Metadata - Phía Server
2 Bài tập: Metadata - Phía Server
3 Thử thách có hướng dẫn: Metadata - Phía Server
4 Lời giải: Metadata - Phía Server
1 Lý thuyết: Metadata - Phía Client
2 Bài tập: Metadata - Phía Client
3 Thử thách có hướng dẫn: Metadata - Phía Client
4 Lời giải: Metadata - Phía Client
1 Lý thuyết: Bộ chặn (Interceptor)
2 Bài tập: Bộ chặn (Phía Server)
3 Thử thách có hướng dẫn: Bộ chặn (Phía Server)
4 Lời giải: Bộ chặn (Phía Server)
5 Bài tập: Bộ chặn (Phía Client)
6 Thử thách có hướng dẫn: Bộ chặn (Phía Client)
7 Lời giải: Bộ chặn (Phía Client)
1 Lý thuyết: Cổng gRPC-REST (gRPC-REST Gateway)
2 Bài tập: Cổng gRPC-REST (Chuẩn bị)
3 Thử thách có hướng dẫn: Cổng gRPC-REST (Chuẩn bị)
4 Lời giải: Cổng gRPC-REST (Chuẩn bị)
5 Bài tập: Cổng gRPC-REST (Ánh xạ mặc định)
6 Thử thách có hướng dẫn: Cổng gRPC-REST (Ánh xạ mặc định)
7 Lời giải: Cổng gRPC-REST (Ánh xạ mặc định)
8 Bài tập: Cổng gRPC-REST (Ánh xạ bằng Annotation)
9 Thử thách có hướng dẫn: Cổng gRPC-REST (Ánh xạ bằng Annotation)
10 Lời giải: Cổng gRPC-REST (Ánh xạ bằng Annotation)
11 Bài tập: Cổng gRPC-REST (Ánh xạ bên ngoài)
12 Thử thách có hướng dẫn: Cổng gRPC-REST (Ánh xạ bên ngoài)
13 Lời giải: Cổng gRPC-REST (Ánh xạ bên ngoài)
1 Lý thuyết: Bảo mật gRPC
2 Bài tập: Bảo mật gRPC (Phía Server)
3 Thử thách có hướng dẫn: Bảo mật gRPC (Phía Server)
4 Lời giải: Bảo mật gRPC (Phía Server)
5 Bài tập: Bảo mật gRPC (Phía Client)
6 Thử thách có hướng dẫn: Bảo mật gRPC (Phía Client)
7 Lời giải: Bảo mật gRPC (Phía Client)
8 Bài tập: Bảo mật gRPC (Cổng REST)
9 Thử thách có hướng dẫn: Bảo mật gRPC (Cổng REST)
10 Lời giải: Bảo mật gRPC (Cổng REST)
1 Tải mã nguồn, Script và Tài liệu tham khảo
2 Bài giảng bổ sung

Giới thiệu khóa học

This course is designed to help learners understand and implement Protocol Buffers (protobuf) and gRPC using the Go programming language on microservice architecture.

The course is structured in a step-by-step manner, starting with an introduction to protobuf, its style guide, and course file structure. You will learn the theory behind various aspects of protobuf such as scalar types, repeated enum comments, protobuf JSON, nested message type, package, any, oneof, map, and schema evolution.

The course also covers the implementation of gRPC and its integration with protobuf. You will learn how to manage the gRPC repository using github, gRPC status, error handling, resiliency server, timeout, retry, and circuit breaker. Additionally, the course covers the implementation of metadata server and client, server interceptor, client interceptor, and gRPC-REST gateway.

Throughout the course, you will work on various hands-on codes that involve creating a banking application using gRPC and protobuf, as well as using PostgreSQL database and Go Object Relational Mapper (ORM) to works with database. By the end of this course, you will have the skills and knowledge required to create microservices using gRPC and protobuf with the Go programming language.

Requirements (must-have):

  • Basic knowledge of the Go programming language

  • Familiarity with git commands (push, pull, pull request, merge, branch)

Tools:

  • Go programming language

  • Protocol Buffers (protobuf)

  • gRPC

  • Github

  • Visual Studio Code (or any editor you like)

The course delivered in lab-style teaching, where you are assigned with a task tobe solved. There will be a guidance for each task so you can try hands-on. If you stuck, you can jump to the full solution.

The course contains 130+ lectures, which cover the following topics:

  • Introduction to protobuf

  • Writing a protobuf (style guide)

  • Scalar types, repeated, enums, and Protobuf JSON

  • Other message types, multiple files and import messages, nested message types, and packages

  • Any, oneof, and maps

  • Reading and writing Protobuf to disk and JSON

  • Schema evolution and additional data types

  • Option, field validation, and field number effect tips

  • Introduction to gRPC and whether to use it or not

  • Managing & automating Protobuf and gRPC github repositories with github action

  • Implementing a unary server and client, server streaming, client streaming, and bidirectional streaming

  • Implementing a bank gRPC application with PostgrSQL database preparation, fetching exchange rates, and summarizing transactions

  • Handling gRPC status and errors, error handling on the client side, and resiliency techniques such as timeout, retry, and circuit breaker

  • Implementing metadata, server and client interceptors

  • gRPC-REST gateway

By the end of the course, you will have gained a thorough understanding of how to implement Protocol Buffers and gRPC using the Go programming language. You will learned how to follow Protobuf style guides, organize Protobuf file structures, and work with scalar types, repeated, enums, maps, any, oneof, and nested message types. They will also have learned how to read and write Protobuf to disk and JSON, handle schema evolution (forward / backward compatibility), and use additional data types.

Furthermore, you will have gained hands-on experience in implementing various types of gRPC services, including unary, server streaming, client streaming, and bidirectional streaming. You will also have learned how to handle gRPC status and errors, implement resiliency techniques such as timeout, retry, and circuit breaker. You will learn how to convert your gRPC API to REST API, using gRPC-REST gateway. You will also learn how to generate OpenAPI / swagger documentation for gRPC.

In other words, you will have gained practical skills and knowledge that you can apply to building robust and scalable microservices using Protocol Buffers and gRPC with the Go programming language.

Khóa học liên quan

Khám phá thêm các khoá học cùng chủ đề

Hiển thị tất cả khoá học Backend Development
Hiển thị tất cả khoá học Go
Hiển thị tất cả khoá học Grpc
Hiển thị tất cả khoá học Microservices
Zalo
Tôi có thể tư vấn khoá học cho bạn 😊