Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como grpc

gRPC con Java (2da parte)

En el anterior post creamos una aplicación tipo cliente-servidor con gRPC. La clase tipo "service" que creamos funciona parcialmente. Sin embargo, requiere ciertos ajustes. PalindromaServiceImpl.java package com.inforhomex.grpc ; import com.inforhomex.grpc.PalindromaProto.PalabraResponse ; import com.inforhomex.grpc.PalindromaProto.PalabraRequest ; import io.grpc.stub.StreamObserver ; public class PalindromaServiceImpl extends PalindromaServiceGrpc. PalindromaServiceImplBase { @Override public void evaluaCadena (PalabraRequest request, StreamObserver<PalabraResponse> responseObserver) { String cadena = request. getCadena (); String invertida = new StringBuilder(cadena). reverse (). toString (); String respuesta; if (cadena. equalsIgnoreCase (invertida)) { respuesta = "La cadena '" + cadena + "' es un palíndromo." ; } else { resp...

gRPC con Java (1era parte)

Ya hemos visto ejemplos de gRPC con: Python  Go  Rust Ahora continuaremos con Java, el lenguaje preferido por muchos y odiado por otros tantos. Y es que Java es inevitable (sic). Quien necesite o requiera crear microservicios, etc. tendrá que usar alguna vez en su vida este poderoso lenguaje. Crearemos un proyecto Java con Maven. Se tratará de un proyecto tipo cliente-servidor. En el cual el cliente mandará una cadena cualquiera y el servidor evaluará si es palíndroma o no. Cadenas como "BOB", "ANITA LAVA LA TINA" serán palíndromas, pues se pueden leer de izquierda a derecha y viceversa. Cualquier otra cadena que no cumpla la regla no será palíndroma. Requisitos: Tener Java instalado.  Tener Maven instalado.  Tener la herramienta Protoc instalada. Creando el proyecto gRPC con Java 1. Creamos el proyecto Java con Maven: $ mvn archetype:generate - DgroupId = com . inforhomex . grpc - DartifactId = grpc - demo - DarchetypeArtifactId...

Tonic: gRPC con Rust

  Tonic es una implementación en Rust de gRPC , un marco de trabajo RPC general, de código abierto y de alto rendimiento que prioriza los dispositivos móviles y HTTP/2 . Es una librería que se creó para ofrecer soporte de primera clase para async/await y para servir como componente fundamental en sistemas de producción escritos en Rust . Sus características principales son: Transmisión bidireccional E/S asíncrona de alto rendimiento. Interoperabilidad TLS con soporte de rustls . Balanceo de carga. Metadatos personalizados. Autenticación. Verificación de estado. Para conocer mejor esta librería haremos un proyecto cliente-servidor con Rust como lenguaje base. Requisitos: Tener Rust instalado.  Tener Cargo instalado. Verifiquemos la versión de Rust: $ rustc -- version Verifiquemos la versión de Cargo: $ cargo version Empezando con Tonic y Rust (con Cargo) 1. Crearemos un proyecto Rust con ayuda de Cargo , una vez creado nos ubicar...