Я пытаюсь понять protobuf и gRPC и то, как я могу их использовать. Не могли бы вы помочь мне понять следующее:
- Учитывая модель OSI , где, например, находится Protobuf на уровне 4?
- Подумав о передаче сообщений, как обстоят дела с «потоком», что делает gRPC, что пропускает protobuf?
- Если отправитель использует protobuf, может ли сервер использовать gRPC или gRPC добавляет что-то, что может доставить только клиент gRPC?
- Если gRPC может сделать возможной синхронную и асинхронную связь, Protobuf предназначен только для маршалинга и, следовательно, не имеет ничего общего с состоянием - true или false?
- Могу ли я использовать gRPC во внешнем приложении вместо REST или GraphQL?
Я уже знаю - или предполагаю, что знаю - что:
- Бинарный протокол для обмена данными
- Разработано Google
- Использует сгенерированное описание типа "Struct" на клиенте и сервере для отмены - / - маршаллинга сообщения
- Использует protobuf (v3)
- Опять из гугла
- Платформа для вызовов RPC
- Также использует HTTP / 2
- Возможна синхронная и асинхронная связь
Я снова предполагаю, что это простой вопрос для тех, кто уже использует эту технологию. Я все еще буду благодарен вам за терпение и помощь. Я также был бы очень благодарен за любое сетевое глубокое погружение в технологии.