Actualmente todo el mundo esta migrando de monolítico a microservicios
Cuando llevas tiempo trabajando con los microservicos ves que no todo son ventajas, como todo tiene cosas "buenas" y "no tan buenas" en este caso es la comunicación entre los microservicos por defecto es json, pero en ocasiones necesitamos que la comunicación entre los microservicios sea muy rapido, para conseguir eso necesitamos buscar un protocolo que sea:
- Rapido en serializar y desarializar
- Tamaño reducido
Con esto lo conseguimos con protocolos binarios, si buscamos en google encontramos un moton de frameworks:
- Protocol Buffer
- Kryo
- Avro
- Thrift
En este ejemplo vamos a comparar json contra protocol buffer y kryo, como he dicho antes para probar los protocolos binarios este ejemplo esta formado por las siguientes tecnologias:
- Grizzly como servidor NIO
- Jersey como JAX-RS
- Jackson
- Google Protobuf
- Kryo
- Maven 3 o superior
- Java 8 o superior
git clone git@github.com:xabe/binaryProtocol.git
mvn clean install -Pbenchmark