2016-05-03 4 views
5

Я использую gRPC для разбивки вызова и пытаюсь выяснить варианты его выполнения/аппроксимации. Это вопрос разумный? Какие ресурсы я могу использовать для этого?Разбиение страницы в gRPC

ответ

1

Pagination очень похож на бинарную полезную нагрузку. Мой ответ в gRPC + Image Upload, вероятно, стоит прочитать.

Таким образом, разбиение на страницы может иметь разные компромиссы, так как обычно это намного более низкая пропускная способность, а иногда не так сложно использовать отдельные запросы. Низкая пропускная способность может препятствовать быстрому управлению потоком, чтобы он был полезен. Использование отдельных запросов сложнее для полностью динамических результатов, таких как результаты поиска, но, возможно, это не большая проблема для более статических данных, таких как дети ресурса.

Поскольку управление потоком gRPC может слишком много буферизовать, дополнительная опция - использовать потоковое вещание, но вводить управление потоком на уровне приложения. С помощью управления потоком на уровне приложений вы будете использовать сообщения в потоке, сколько запросов вы хотите, которые не так сложно использовать или реализовать. Там говорили о поддержке точного управления потоком сообщений в gRPC изначально (что привело бы к аналогичным результатам в этом случае), но неясно, будет ли и когда это произойдет.

0

Этот вопрос довольно старый, но я чувствую, что что-то не хватает на ответ.

В то время как потоковая передача предпочтительна, у меня есть случаи, когда «традиционная» разбивка на страницы весьма полезна. Позволяет себе представить услугу user, которая обеспечивает доступ CRUD к хранилищу пользователей и содержит ListUsers и SearchUsers rpc. Здесь гораздо удобнее получить результат, который выкладывается на страницы.

Я лично использую подход Googles к этому: https://github.com/googleapis/googleapis/blob/master/google/cloud/resourcemanager/v2/folders.proto

Смежные вопросы