
gRPC
Protocol Buffers, dịch vụ gRPC, streaming, interceptor, xử lý lỗi, metadata
1gRPC là gì?
gRPC là gì?
Câu trả lời
gRPC là một framework RPC (Remote Procedure Call) mã nguồn mở do Google phát triển, sử dụng HTTP/2 làm giao thức truyền tải và Protocol Buffers làm định dạng serialization mặc định. Khác với REST sử dụng JSON và HTTP/1.1, gRPC mang lại hiệu năng tốt hơn nhờ định dạng nhị phân của Protocol Buffers và các tính năng nâng cao của HTTP/2 (multiplexing, nén header, server push). gRPC được sử dụng rộng rãi cho giao tiếp giữa các microservice vì nó hỗ trợ nguyên bản streaming hai chiều, sinh mã client/server và kiểu dữ liệu được định kiểu chặt chẽ.
2Vai trò chính của Protocol Buffers trong gRPC là gì?
Vai trò chính của Protocol Buffers trong gRPC là gì?
Câu trả lời
Protocol Buffers (protobuf) là ngôn ngữ định nghĩa giao diện (IDL) và định dạng serialization nhị phân được dùng mặc định trong gRPC. Nó cho phép định nghĩa cấu trúc của các message và dịch vụ trong các file .proto, sau đó được biên dịch để tự động sinh mã client và server trong nhiều ngôn ngữ khác nhau. Định dạng nhị phân của protobuf nhỏ gọn hơn JSON từ 3 đến 10 lần và mang lại hiệu năng serialization/deserialization vượt trội đáng kể (nhanh hơn tới 20 lần). Điều này khiến gRPC đặc biệt phù hợp cho giao tiếp tần suất cao giữa các microservice.
3Sự khác biệt giữa một lệnh gọi gRPC Unary và một lệnh gọi Server Streaming là gì?
Sự khác biệt giữa một lệnh gọi gRPC Unary và một lệnh gọi Server Streaming là gì?
Câu trả lời
Lệnh gọi Unary là loại lệnh gọi gRPC đơn giản nhất: client gửi một request duy nhất và nhận một response duy nhất, tương tự một request HTTP REST cổ điển. Lệnh gọi Server Streaming cho phép client gửi một request duy nhất nhưng nhận một luồng (stream) gồm nhiều response từ server. Ví dụ, một API thông báo có thể dùng Server Streaming để gửi nhiều cập nhật cho client mà không cần client phải polling. Điều này giảm độ trễ và tải mạng so với các lệnh gọi Unary lặp lại.
Package Go nào được dùng để tạo một server gRPC?
Làm thế nào để định nghĩa một dịch vụ gRPC trong file .proto?
+19 câu hỏi phỏng vấn
Các chủ đề phỏng vấn Go khác
Kiến thức cơ bản về Go
Cấu trúc dữ liệu Go
Interface trong Go
Xử lý lỗi
Cơ bản về Goroutine
Channels
Go Modules
Máy chủ HTTP
HTTP Client
Mã hóa JSON
Database/SQL
Gói context
Testing
Các mẫu Concurrency
Primitive đồng bộ hóa
Framework web Go
Thiết kế API REST
Reflection
Quản lý bộ nhớ
Tối ưu hóa hiệu năng
Generics
Go Design Patterns
Microservices
Bảo mật và Xác thực
Docker & Containerization
Kubernetes Basics
Go Nâng cao
Phát triển CLI
Nắm vững Go cho lần phỏng vấn tiếp theo
Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.
Bắt đầu miễn phí