Como es habitual: los antencedentes
Aproximadamente 1 año hace que publiqué una Trilogía de Modernización de Microservicios, que suman más de 150 paginas para tu autoformación y si sumas la del Proyecto Tye casi nos acercamos a las 200 páginas (en GitHub los correspondientes ejemplos):
Donde hablaba desde Dapr hasta el proyecto Tye. Incluso una charla pude dar de Introducción al Project Tye.
Las cosas parece que tienen recurrencia y hace poco he vuelto a un proyecto donde se hace uso de Dapr, y esta es la razón del artículo.
Si quires rizar el rizo, tambien recomiendo que leas mi libro de Monitorizacion moderna de aplicaciones.
Asi tendrás una nada despreciable cantidad de 300 páginas para leer en estas vacaciones.
El problema
Veo que existe un poco de duda al respecto y por eso he decidido hacer el artículo, para aclara como usar gRPC o HTTP y una pequeña píldora de la diferencia más llamativa.
Solución
Ir al respositorio de GitHub jmfloreszazo/daprhttpinvokemicroserviceswithnet6
En el Readme he dejado los pasos para que puedas lanzar este mini proyecto. Que pondré aquí tambien con alguna foto intermedia.
El cambio que debes haer con respecto de ese repositorio
Entra en los ficheros de docker-compse y cambia la forma en que llamamos a DAPR
Seguir los pasos de este árticulo para poder ejecutar: https://jmfloreszazo.com/net-6-dapr-microservices-con-invocacion-http/
Y ejecutar la aplicación.
Si ejecutas primero la aplicación con Postman sin el cambio y con el cambio, podrás observar la diferencia de velocidad en local, lo suyo es usar JMeter y hacer un test de verdad (ver este artículo).
Pero con esto ya podeis ver que el resultado salta a la vista:
Como podeis ver en la ayuda de Dapr deja muy claro que por defecto estamos usando HTTP y que si no indicamos que queremos usar gRPC no podremos usar esa velocidad que nos da este otro protocolo:
Los enlaces qué podrán servirte de utilidad los dejo aquí:
Y como puedes ver gRPC es una opción que deberías tener muy, muy en cuenta para optimizar un poco más tus microservicios.