Intento entender protobuf y gRPC y cómo puedo usar ambos. ¿Podría ayudarme a comprender lo siguiente?
- Teniendo en cuenta el modelo OSI, ¿dónde está, por ejemplo, Protobuf en la capa 4?
- Pensando en la transferencia de un mensaje, ¿cómo es el "flujo", qué hace gRPC y qué falla el protobuf?
- Si el remitente usa protobuf, ¿puede el servidor usar gRPC o gRPC agrega algo que solo un cliente de gRPC puede entregar?
- Si gRPC puede hacer posible la comunicación sincrónica y asincrónica, Protobuf es solo para la clasificación y, por lo tanto, no tiene nada que ver con el estado: ¿verdadero o falso?
- ¿Puedo usar gRPC en una aplicación de interfaz que se comunique en lugar de REST o GraphQL?
Ya sé, o supongo que sí, que:
- Protocolo binario para intercambio de datos
- Diseñado por Google
- Utiliza una descripción similar a "Struct" generada en el cliente y el servidor para un - / - mensaje de marshall
- Utiliza protobuf (v3)
- De nuevo de Google
- Marco para llamadas RPC
- También hace uso de HTTP / 2
- Posibilidad de comunicación síncrona y asíncrona
De nuevo, asumo que es una pregunta fácil para alguien que ya usa la tecnología. Todavía le agradecería que tuviera paciencia conmigo y me ayudara. También estaría muy agradecido por cualquier análisis profundo de las tecnologías en la red.
HTTP/2
), pero definitivamente hace el trabajo de esas capas.En realidad, gRPC y Protobuf son dos cosas completamente diferentes. Déjame simplificar:
gRPC tiene 2 lados: un lado del servidor y un lado del cliente, que puede marcar un servidor. El servidor expone RPC (es decir, funciones a las que puede llamar de forma remota). Y tiene muchas opciones allí: puede asegurar la comunicación (usando TLS), agregar una capa de autenticación (usando interceptores), ...
Puede usar protobuf dentro de cualquier programa, que no necesita ser cliente / servidor. Si necesita intercambiar datos y desea que estén fuertemente tipados, protobuf es una buena opción (rápida y confiable).
Dicho esto, puede combinar ambos para construir un buen sistema cliente / servidor: gRPC será su código cliente / servidor y protobuf su protocolo de datos.
PD: escribí este artículo para mostrar cómo se puede construir un cliente / servidor con gRPC y protobuf usando Go, paso a paso.
fuente
grpc es un framework creado por Google y se utiliza en proyectos de producción de Google y #HyperledgerFabric está construido con grpc hay muchas aplicaciones de código abierto creadas con grpc
protobuff es una representación de datos como json, esto también es de google, de hecho, tienen algunos miles de archivos proto que se generan en sus proyectos de producción
grpc
protobuff
fuente