/binaryProtocol

Primary LanguageJavaMIT LicenseMIT

Build Status Sonar Coverage Maintainability Technical Vulnerabilities Duplicate Reliability Security

Protocolos binarios

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

Requisitos

  • Maven 3 o superior
  • Java 8 o superior

Inicio rápido

git clone git@github.com:xabe/binaryProtocol.git

Ejecución

mvn clean install -Pbenchmark