GRPC: лучше использовать асинхронный или синхронизирующий клиентский API, когда rpc возвращает google.protobuf.Empty.C++

Программы на C++. Форум разработчиков
Ответить
Гость
 GRPC: лучше использовать асинхронный или синхронизирующий клиентский API, когда rpc возвращает google.protobuf.Empty.

Сообщение Гость »


Я хочу использовать GRPC в приложении C++, где клиент отправляет rpc, в основном запускаемый по пользовательским событиям. Все эти вызовы возвращают google.protobuf.Empty, поэтому меня не интересует возвращаемое значение на стороне клиента.

Google рекомендует по возможности использовать асинхронный API в C++. Теперь в моем сценарии, когда завершение вызова все равно не обрабатывается на стороне клиента, мне интересно, буду ли я по-прежнему использовать асинхронный API, чтобы повысить производительность. В этом случае мне, вероятно, следует создать какой-то поток «сборщика мусора» с низким приоритетом, который вызывает CompletionQueue::Next, а затем ничего не делает, просто чтобы гарантировать, что очередь не будет расти неограниченно. И все же это немного похоже на излишество. В лучшем случае это будет фиктивный вариант очереди завершения, который просто отбрасывает событие по завершении, но мне ничего подобного не известно.

Я понятия не имею, насколько эффективным или неэффективным будет использование API синхронизации в моем случае. Есть ли какие-либо практические рекомендации для этого сценария?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»