7.1 Introducción básica a la codificación y decodificación.
-
Al escribir aplicaciones de red, dado que los datos transmitidos en la red son datos de código de bytes binarios, deben codificarse al enviar datos y deben decodificarse al recibir datos.
-
Hay dos componentes de códec (códec) : decodificador (decodificador) y codificador (codificador). El codificador es responsable de convertir los datos comerciales en datos de bytecode, y el decodificador es responsable de convertir los datos de bytecode en datos comerciales
7.2 Mecanismo de codificación y decodificación propio de Netty y análisis de problemas
-
Netty proporciona un códec (códec)
-
Netty proporciona el codificador:
StringEncoder, codifica datos de cadena
ObjectEncoder, codifica objetos Java -
Netty proporciona el decodificador
StringDecoder, que decodifica datos de cadena,
ObjectDecoder y decodifica objetos Java -
sí Netty viene ObjectDecoder ObjectEncoder y la codificación y decodificación se puede utilizar para implementar objeto POJO varios negocios o objetos, todavía utilizando la técnica de serialización Java subyacente, la secuencia de la tecnología Java sí misma eficiencia no es alto, los siguientes problemas:
1 No se puede cruzar el idioma
2. El volumen después de la serialización es demasiado grande, más de 5 veces el de la codificación binaria.
3. El rendimiento de la serialización es demasiado bajo
===> conduce a una nueva solución [Protobuf de Google]
7.3 Protobuf
7.4 Ejemplo de inicio rápido de Protobuf
Escriba un programa y use Protobuf para completar las siguientes funciones
- El cliente puede enviar un objeto de estudiante PoJo al servidor (codificado por Protobuf)
- El servidor puede recibir el objeto Student PoJo y mostrar la información (decodificada por Protobuf)
7.5 Ejemplo 2 de inicio rápido de Protobuf
- Escriba un programa y use Protobuf para completar las siguientes funciones
- El cliente puede enviar aleatoriamente objetos de estudiante PoJo / trabajador PoJo al servidor (codificado por Protobuf)
- El servidor puede recibir objetos de estudiante PoJo / trabajador PoJo (necesita determinar qué tipo) y mostrar información (decodificada por Protobuf)