Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Fecha: 22/03/2023
Lea detenidamente las preguntas, la prueba tiene que ser completada en un tiempo máximo
de 10 minutos.
¿Qué fragmento de código, tiene que insertarse en Línea n1, para que imprima JavaSE?
¿Cuál es el resultado?
¿Cuál es el resultado?
m) true
n) false
o) 1
p) 0
¿Qué fragmento de código tiene que ser insertado en Línea n1 para que el código
imprima 2 4?
Fecha: 22/03/2023
Lea detenidamente las preguntas, la prueba tiene que ser completada en un tiempo máximo
de 10 minutos.
1. ¿Es una buena idea compartir una base de datos común a través de múltiples
microservicios? Explique las opciones que existen y su criterio acerca de las mismas.
La decisión de compartir o no una base de datos común entre múltiples microservicios
depende del caso de uso específico y de las necesidades del proyecto en cuestión.En
cuanto a las opciones que existen, se pueden considerar las siguientes:
1. Base de datos compartida: Todos los microservicios acceden a la misma base de datos
compartida. Esta opción puede tener ventajas en términos de simplicidad y
consistencia de datos, ya que todos los servicios trabajan con los mismos datos.
2. Base de datos por microservicio: Cada microservicio tiene su propia base de datos
independiente. Esta opción puede tener ventajas en términos de escalabilidad y
flexibilidad, ya que cada microservicio puede manejar sus propios datos y la carga de
trabajo sin afectar a otros servicios.
3. Combinación de bases de datos: Se pueden utilizar diferentes tipos de bases de datos
según las necesidades de cada microservicio. Por ejemplo, se pueden utilizar bases de
datos SQL para microservicios que manejan transacciones y bases de datos NoSQL
para microservicios que requieren escalabilidad y flexibilidad.
En cuanto a mi criterio personal, creo que la opción más adecuada dependerá del caso
de uso específico y de los requisitos y objetivos del sistema en cuestión. En general, la
opción de base de datos por microservicio puede ser una buena opción en términos de
escalabilidad y flexibilidad, pero puede requerir más esfuerzo en la implementación y
gestión de datos. La opción de base de datos compartida puede ser más simple, pero
puede tener limitaciones en términos de escalabilidad y rendimiento. En cualquier
caso, es importante tener en cuenta los pros y contras de cada opción y elegir la que
mejor se adapte a las necesidades del proyecto.
2. ¿En qué consiste el patrón “circuit breaker”? Explique escenarios de uso y los estados
manejados en este patrón.
El patrón de diseño "Circuit Breaker" es una técnica de control de fallas utilizada en
sistemas distribuidos para evitar la propagación de fallas entre los componentes. El
objetivo principal de este patrón es evitar que una falla en un componente provoque la
falla en otros componentes del sistema, lo que puede llevar a una falla en cascada.
Un escenario común de uso es el acceso a bases de datos o servicios web. Si una base de
datos o servicio web no responde correctamente, el circuit breaker interrumpe la
comunicación con el componente y devuelve una respuesta de error inmediatamente. Esto
evita que se acumulen solicitudes fallidas en la cola, lo que puede llevar a una falla en
cascada y provocar un tiempo de inactividad prolongado.
Los tres estados principales del circuit breaker son cerrado, abierto y semiabierto, y se
utilizan para controlar el flujo de solicitudes entrantes en función del estado del
componente de destino.
3. ¿Defina en sus propias palabras que es gRPC?
gRPC es un framework de comunicación remota de alta velocidad, desarrollado por
Google, que permite la comunicación entre diferentes sistemas distribuidos.
4. ¿Qué es un arquetipo?
Un arquetipo es una plantilla predefinida que puede ser utilizada para crear proyectos en
un lenguaje de programación o tecnología específica.
5. ¿Cuáles son los verbos que puedo utilizar para exponer endpoint en mis microservicios
de tipo RestFull?
Los principales son GET,POST,PUT,DELETE
Fecha: 22/03/2023
Ejemplo 1:
Salida: 4
Ejemplo 2:
Salida: 3
Ejemplo 3:
Salida: 1
Restricciones:
Respuesta – Código
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.BiFunction;
import java.util.function.Function;
Respuesta – Explicación
Este algoritmo(Ordenación por conteo) también tiene un tiempo de ejecución de O(n), ya que
se recorre el arreglo nums una vez para contar las ocurrencias, y luego se recorre el arreglo
count para buscar el primer entero positivo que no aparece.