Existe un error con el video, se repite la información transmitida entre el minuto 00:21 y el minuto 03:22
Introducción
Construcción de Microservicios con Go y gRPC
Creación de Servicios para Gestión de Exámenes con Postman
Serialización de Datos con Protocol Buffers en Go
Generación de Protobufs y Paquetes Go para gRPC
Evolución de Arquitecturas de Software y el Rol de gRPC
gRPC
RPC y gRPC: Protocolos para Comunicación Eficiente entre Servicios
Comparativa de JSON y Protobufers en Intercambio de Datos
Definición de Servicios gRPC con Protocol Buffers en Go
Implementación de Repositorios y gRPC en Go con PostgreSQL
Implementación de Servidor gRPC para Gestión de Estudiantes
Pruebas de API gRPC con Postman y Docker
Definición de Servicios gRPC en Go para Pruebas y Exámenes
Implementación de gRPC Server y Métodos en Go
Implementación de Streaming del Cliente con gRPC en Go
Implementación de Streaming del Servidor con gRPC y Protobufs
Implementación de Streaming gRPC del Lado del Servidor en Go
Streaming Bidireccional con gRPC: Implementación y Pruebas
Pruebas de Streaming Bidireccional con gRPC y Postman
Implementación de Cliente gRPC en Go para Comunicación con Servidor
Implementación de Streaming en gRPC: Servidor y Bidireccional
Conclusión
Implementación de gRPC Web con Proxy Envoy y JavaScript
Streaming de Datos con gRPC y Protobufers en Backends
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
El streaming del lado del servidor es una técnica poderosa en un entorno de programación asíncrono. Sobre todo, representa una forma eficiente de manejar grandes cantidades de datos o de proporcionar actualizaciones en tiempo real en sistemas distribuidos. En este contexto, vamos a trabajar con gRPC y Protobuf para construir los prototipos necesarios y configurar los servicios.
Vamos a comenzar definiendo mensajes Protobuf necesarios para nuestra aplicación. Estos mensajes son fundamentales en la comunicación entre cliente y servidor.
EnrollmentRequest: Se utiliza para matricular estudiantes en un examen específico. Los campos necesarios son:
student_id
: ID del estudiante.test_id
: ID del examen.GetStudentsPerTestRequest: Utilizado por el cliente para solicitar los estudiantes inscritos en un examen. El servidor responde con una transmisión de estudiantes:
test_id
: ID del examen solicitado.A continuación, definimos los servicios en nuestro archivo Protobuf. Aquí nos centramos en dos funciones RPC.
EnrollStudents: Permite al cliente enviar un flujo de solicitudes de inscripción que el servidor procesa.
EnrollmentRequest
.SetQuestionResponse
.GetStudentsPerTest: El servidor responde con un flujo continuo de estudiantes inscritos en un examen.
GetStudentsPerTestRequest
.Student
.Uno de los grandes beneficios de los Protobuf es la capacidad de importar y reutilizar definiciones existentes. Para esta implementación:
student.proto
de otro módulo.Luego de hacer las modificaciones en el archivo Protobuf, es necesario compilar los paquetes para que gRPC y Protobuf generen los códigos necesarios de servicio y cliente. Asegúrate de mantener el comando de compilación a mano para:
protoc --go_out=. --go-grpc_out=. path/to/your/file.proto
Para gestionar las inscripciones en nuestra base de datos, crearemos una nueva tabla denominada enrollments
:
student_id
y test_id
.A continuación, creamos una estructura de modelo:
type Enrollment struct {
StudentID string
TestID string
}
Implementación de las funciones para obtener inscripciones y estudiantes dentro de nuestro repositorio:
Enrollment
para almacenar los datos en la tabla enrollments
.SELECT id, name, age FROM students
WHERE id IN (
SELECT student_id FROM enrollments WHERE test_id = ?
)
La creación e implementación de estos servicios y mensajería en streaming son herramientas esenciales para sistemas escalables y fiables. ¡Adelante, sigue aprendiendo y experimentando! Cada clase te proporciona nuevas habilidades para perfeccionar tus conocimientos en programación de servicios.
Aportes 2
Preguntas 1
Existe un error con el video, se repite la información transmitida entre el minuto 00:21 y el minuto 03:22
En este video se comieron por completo la parte de la implementación del SetEnrollment en el postgres.go.
Se valora poder tener acceso a los archivos para poder comparar.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?