С чем и как есть gRPC?

gRPC — это высокопроизводительная платформонезависимая технология для удаленного вызова процедур (RPC), разработанная компанией Google. Она основана на протоколе HTTP/2 для обмена данными, а для сериализации данных по умолчанию использует Protocol Buffers (Protobuf).

gRPC предоставляет простой и мощный способ для вызова методов/функций на удаленных серверах так, будто они являются локальными, прямо из вашего кода. gRPC поддерживает несколько языков программирования, включая Python.

Для работы с gRPC на Python необходимо установить библиотеку grpcio. Затем используется кодогенерация для создания клиентского и серверного кода на основе Protobuf-определений. Протокол Buffers позволяет определить структуру вашего RPC интерфейса и сообщений, которые будут передаваться между клиентом и сервером.

Вам нужно определить Protobuf-файл с описанием сервиса и сообщений, затем сгенерировать соответствующие Python-классы. Для создания gRPC сервера вам нужно создать класс, который наследуется от сгенерированного класса, который реализует сервис, определенный в вашем Protobuf-файле.

Для создания клиента вам нужно также сгенерировать класс-заглушку из Protobuf-файла и затем использовать его для вызова удаленных методов. Запустить gRPC-сервер можно с помощью метода server.add_insecure_port('[::]:PORT'), где PORT — это порт, на котором будет слушать сервер. Для вызова методов на сервере из клиента используется созданный клиентский класс с подключением к удаленному серверу.

Таким образом, gRPC в Python позволяет создавать эффективные и удобные для использования удаленные API и микросервисы с минимальными накладными расходами на сеть и сериализацию данных.