Понимание и реализация асинхронной операции gRPC в Go lang - PullRequest
0 голосов
/ 29 июня 2018

Я все еще страдаю от этой проблемы: Я знаю, что с Go lang мы можем легко реализовать высокопроизводительный сетевой сервис. Я выбрал протокол gRPC, и мне лучше реализовать асинхронную операцию, потому что он более мощный, чем синхронный:

  • Не могли бы вы рассказать подробнее о преимуществах использования асинхронной операции над синхронной операцией?
  • Можете ли вы рассказать мне, как реализовать асинхронные сервисы Go lang или Python, или дать мне пример кода, я прочитал эту статью https://grpc.io/docs/tutorials/async/helloasync-cpp.html, но этот вид кода мне не известен

Большое спасибо!

1 Ответ

0 голосов
/ 30 июня 2018

Я думаю, что для вас важно еще немного изучить и изучить и прояснить некоторые из этих концепций, с которыми вы имеете дело.

С точки зрения служб синхронизации и асинхронности, я немного погуглил и случайно выбрал эту страницу, которая, кажется, дает хорошее определение терминов:

Если вызов API является синхронным, это означает, что выполнение кода будет блокировать (или ждать) возврата вызова API перед продолжением.

Асинхронные вызовы не блокируют (и не ждут) возврата вызова API с сервера. Выполнение продолжается в вашей программе, и когда вызов возвращается с сервера, выполняется функция «обратного вызова».

Ваше утверждение о том, что "асинхронная операция является более мощной, чем синхронная", кажется ошибочным. У каждого из них есть свои приложения, подходящие для разных сценариев. Если у вас есть конкретный сценарий, который вас волнует, это поможет сузить вопрос.

Вот определение gRPC :

gRPC - это современная высокопроизводительная среда RPC с открытым исходным кодом, которая может работать в любой среде.

Ключевым моментом здесь является RPC или «Удаленный вызов процедур». В gRPC вызов является синхронным, даже если он потоковый: соединение открыто, запрос отправлен / передан в потоковом режиме, ответ отправлен / передан в потоковом режиме, а соединение закрыто. Разработка «асинхронного сервиса» подразумевает второй вызов в обратном направлении, что не относится к сфере самой gRPC. Я думаю, вы могли бы использовать gRPC для такого рода вещей, но я не думаю, что это нормально.

В противном случае я бы посоветовал вам прочитать руководство gRPC Основы , а также пример кода . Он также доступен на Python, если вы заходите на сайт gRPC.

...