2016-05-03 12 views
5

Tôi đang sử dụng gRPC để phân trang một cuộc gọi và đang cố gắng tìm ra các tùy chọn để thực hiện/xấp xỉ cho nó. Đây có phải là một câu hỏi hợp lý để hỏi không? Một số tài nguyên tôi có thể sử dụng để làm điều này là gì?Phân trang trong gRPC

Trả lời

1

Phân trang rất giống với việc tải xuống các tải trọng nhị phân. Câu trả lời của tôi trong gRPC + Image Upload có lẽ đáng để đọc.

Điều đó nói rằng, phân trang có thể có sự cân bằng khác nhau, vì thông thường thường thấp hơn nhiều và đôi khi không khó sử dụng các yêu cầu riêng biệt. Thông lượng thấp có thể ngăn chặn kiểm soát dòng chảy từ đá trong đủ sớm để nó có ích. Sử dụng các yêu cầu riêng biệt sẽ khó hơn cho các kết quả động đầy đủ, như kết quả tìm kiếm, nhưng có thể không phải là một vấn đề đối với nhiều dữ liệu tĩnh hơn, giống như trẻ em của một tài nguyên.

Vì điều khiển lưu lượng gRPC có thể đệm quá nhiều, một tùy chọn bổ sung là sử dụng phát trực tiếp nhưng giới thiệu kiểm soát lưu lượng cấp ứng dụng. Với kiểm soát lưu lượng cấp ứng dụng, bạn sẽ sử dụng thông báo trên luồng yêu cầu số lượng phản hồi bạn muốn, điều này không quá khó để sử dụng hoặc triển khai. Có nói chuyện về việc hỗ trợ điều khiển luồng thông điệp chính xác trong gRPC một cách tự nhiên (điều này sẽ tạo ra các kết quả tương tự trong trường hợp này), nhưng không rõ liệu và khi nào điều đó sẽ xảy ra.

0

Câu hỏi này khá cũ nhưng tôi cảm thấy có điều gì đó thiếu trong câu trả lời.

Trong khi phát trực tiếp là IMHO được ưu tiên, tôi có trường hợp phân trang "truyền thống" khá hữu ích. Hãy tưởng tượng một dịch vụ user cho phép CRUD truy cập vào một cửa hàng người dùng và có một số ListUsers và một thanh vn SearchUsers. Có kết quả được chia thành các trang thuận tiện hơn nhiều ở đây.

Cá nhân tôi sử dụng phương pháp tiếp cận của Googles với điều này: https://github.com/googleapis/googleapis/blob/master/google/cloud/resourcemanager/v2/folders.proto