Sintaxis básica de Protobuf3
ProtoBuf (Google Protocol Buffer) es un formato de datos estructurados en serie utilizado por Google para el intercambio de datos. Es multiplataforma, multilingüe y extensible. Es el mismo que los tipos XML y JSON de uso común. , pero el volumen de transmisión es menor y las capacidades de codificación y decodificación son mayores. Es especialmente adecuado para campos como el almacenamiento de datos, la red y la transmisión de datos que requieren un gran volumen de almacenamiento y rendimiento en tiempo real. Es particularmente adecuado para almacenamiento de datos, transmisión de datos de red y otras áreas que requieren alto almacenamiento y rendimiento en tiempo real, y se ha desarrollado en la versión protoc3.
Ventajas: alta eficiencia de espacio, alta eficiencia de tiempo, sensibilidad al tamaño de los datos, alta eficiencia de transmisión
Desventajas: la estructura del mensaje no es muy legible y la secuencia de bytes serializados no es adecuada para La validez de la secuencia binaria no se puede analizar simplemente
Nota: El último tipo golang debe introducir el paquete github.com/golang/protobuf/ptypes/timestamp, que se define de la siguiente manera
Entonces el .protp debe importarse. El archivo se importa a google/protobuf/timestamp. proto
Si un campo se modifica repetidamente, significa que es un campo de lista, equivalente a fragmentar en golang
Si desea conservar algunas etiquetas o campos numéricos, puede usar reservado modificador
El valor del primer valor de enumeración debe ser 0 y hay al menos un valor de enumeración. Un valor puede corresponder a múltiples valores de enumeración y la opción enable_alias = true debe estar marcada como no; Se recomienda utilizar valores negativos.
Especifique el servicio en el archivo .proto y luego defina el método rpc en el servicio, prestando atención a especificar los parámetros y el valor de retorno
gRPC le permite definir cuatro tipos de métodos de servicio
El cliente usa el código auxiliar para enviar una solicitud al servidor y luego espera una respuesta, como una llamada de función normal.
Puede especificar un método de transmisión del lado del servidor insertando la palabra clave de transmisión antes del tipo de parámetro de devolución de respuesta. El cliente envía una solicitud al servidor y obtiene una secuencia para leer la secuencia de mensajes devueltos. El cliente lee la secuencia devuelta hasta que no contiene mensajes.
Especifique el método de transmisión del cliente especificando la palabra clave de transmisión antes del tipo de parámetro de solicitud. El cliente escribirá una serie de mensajes y los enviará al servidor, nuevamente utilizando transmisiones. Una vez que el cliente ha terminado de escribir el mensaje, espera a que el servidor lea la respuesta que le devuelve.
El tipo de método se especifica anteponiendo a la solicitud y la respuesta la palabra clave stream. Las dos secuencias se ejecutan de forma independiente, por lo que el cliente y el servidor pueden leer y escribir en cualquier orden: por ejemplo, el servidor puede esperar a que se reciban todos los mensajes del cliente antes de escribir una respuesta, o puede leer y escribir mensajes alternativamente, o combinarlos de otra manera. lectura y escritura.