¿Cómo se desarrollan las habilidades necesarias para los arquitectos (microservicios, alta concurrencia, big data, caché y otro middleware)?

La arquitectura moderna de Internet se enfrenta a una topología de servicios inusualmente compleja y cómo gestionar los servicios de forma razonable es una propuesta fundamental en el campo de los arquitectos. ¿Cómo hacer gobernanza de servicios en áreas de negocio, áreas de infraestructura y áreas de estructura organizacional? ¿Cómo evoluciona la gobernanza del servicio paso a paso? ¿Qué desafíos enfrentaremos en el futuro? ¿Cómo coordinar la relación entre alta disponibilidad, alto rendimiento y automatización bajo alta concurrencia y gran volumen de datos?

Este artículo tiene una extensión limitada y las respuestas a cada pregunta están integradas en las notas. Si necesita las notas de esta pregunta de la entrevista y más amigos que necesitan las preguntas de la entrevista (incluidas las respuestas a todas las preguntas)
, haga clic aquí. Código: qf

Inserte la descripción de la imagen aquí

1. Estructura de datos y base de algoritmos

1. · Hablar sobre varios algoritmos de clasificación comunes y su respectiva complejidad.
2. Escriba un algoritmo de clasificación de burbujas en Java.
3. Describa la estructura de almacenamiento en cadena.
4. · ¿Cómo atravesar un árbol binario?
5. · Invertir una LinkedList.
6. · Escribe un recorrido recursivo de todos los archivos del directorio en Java.

Dos, conceptos básicos de Java

Inserte la descripción de la imagen aquí

1. · ¿Cuál es la diferencia entre una interfaz y una clase abstracta?
2. · ¿Cuáles son los tipos de excepciones en Java? ¿Cómo usar cada uno?
3. · ¿Cuáles son las clases de colección más utilizadas? Por ejemplo, ¿cómo ordenar List?
4. ¿Cuál es la implementación general de ArrayList y LinkedList? ¿La diferencia entre ellos y sus ventajas y desventajas?
5. · ¿Qué es el desbordamiento de la memoria? Por favor, dé un ejemplo.
6. · ¿Cuál es la diferencia entre == y es igual a?
7. · ¿Qué hace el método hashCode?
8. · ¿Qué es NIO? ¿Qué tipo de escena es aplicable?
9. · ¿Cómo garantizar la seguridad de los hilos de HashMap?
10. · Estructura de la memoria JVM, ¿por qué necesitamos GC?
11. · Modelo NIO, la diferencia entre select / epoll, el principio de multiplexación
12. · Cuántos bytes ocupa un carácter en Java, expanda y pregunte cuántos bytes int, long, double ocupa
13. · Cree una clase ¿Cuáles son los métodos para ejemplos?
14. · ¿Cuál es la diferencia entre final / finalmente / finalizar?
15. · ¿Cuál es la diferencia entre Sesión / Cookie?
16. · La diferencia entre String / StringBuffer / StringBuilder, ¿cómo extenderlo?
17. · ¿Ciclo de vida del servlet?
18. · ¿Cómo asignar un espacio de memoria 1G continuo con Java? ¿Qué necesita atención?
19. · Java tiene su propio mecanismo de recuperación de memoria, pero ¿por qué sigue habiendo un problema de pérdida de memoria?
20. · ¿Qué es la serialización de Java y cómo implementar la serialización de Java? (Escriba un ejemplo)?
21. · String s = new String ("abc"); ¿Cuántos objetos String se han creado?

Tres, JVM

Inserte la descripción de la imagen aquí

1. La estructura básica del montón de JVM.
2. · ¿Cuáles son los algoritmos basura de JVM? ¿El proceso básico de recolección de basura CMS?
3. · ¿Cuáles son los parámetros de inicio comunes de JVM que se pueden ajustar y cuántos se describen?
4. · ¿Cómo comprobar el uso de memoria de JVM?
5. · ¿Los programas Java tendrán desbordamiento de memoria o pérdidas de memoria? Dé algunos ejemplos.
6. · ¿Cuáles son los parámetros de ajuste y configuración de JVM que utiliza habitualmente? ¿Cuál es el papel de cada uno?
7. · ¿Estructura de la memoria JVM?
8. · ¿Cuándo desencadenará YGC la estrategia de GC de uso común y cuándo desencadenará FGC?

Cuatro, multiproceso / concurrencia

1. · ¿Cómo crear un hilo? ¿Cómo garantizar la seguridad de los hilos?
2. · Cómo implementar una estructura de datos segura para subprocesos
3. · Cómo evitar un punto muerto
4. · ¿El papel de la palabra clave volátil?
5. · ¿A qué debo prestar atención cuando utilizo HashMap en un entorno multiproceso? ¿por qué?
6. · ¿Se utiliza ejecutar o iniciar para iniciar un hilo en un programa Java?
7. · ¿Qué es un hilo de demonio? ¿Cuál es el uso?
8. · ¿Qué es un interbloqueo? Cómo evitar
9. · ¿Cuál es la diferencia entre hilos y procesos?
10. · ¿Cómo se implementa Threadlocal en Java?
11. · ¿Cuál es el principio de realización de ConcurrentHashMap?
12. · La diferencia entre dormir y esperar
13. · La diferencia entre notificar y notificar a todos
14. · El trabajo de la palabra clave volátil
15. · El rol y la implementación de ThreadLocal
16. · Cómo dos subprocesos se ejecutan en serie
17. · Cuál es el significado del cambio de contexto
18. · ¿Se puede matar un hilo en tiempo de ejecución?
19. · ¿Qué son los bloqueos condicionales, los bloqueos de lectura y escritura, los bloqueos de giro y los bloqueos de reentrada?
20. · ¿Cómo realizar el grupo de subprocesos ThreadPoolExecutor?
Inserte la descripción de la imagen aquí

Cinco, uso de Linux y análisis y resolución de problemas

1. · ¿Utiliza dos comandos para crear un archivo?
2. · ¿Cuál es la diferencia entre enlace duro y enlace flexible?
3. · ¿Cuáles son los comandos de Linux más utilizados?
4. · ¿Cómo ver el consumo de recursos de un hilo de Java?
5. · ¿Cuáles son las posibilidades de una carga demasiado alta?
6. · ¿Qué hace el archivo / etc / hosts?
7. · ¿Cómo reemplazar rápidamente todos los "abc" en un texto con "xyz"?
8. · ¿Cómo encontrar el registro de errores en el archivo de registro?
9. · Encuentro que el espacio en disco no es suficiente, ¿cómo encontrar rápidamente el archivo que ocupa más espacio?
10. · Solución de problemas del lado del servidor de Java (OOM, CPU alta, carga alta, conflicto de clases)
11. · Uso y herramientas comunes de solución de problemas de Java (top, iostat, vmstat, sar, tcpdump, jvisualvm, jmap, jconsole)
12. · Cómo analizar archivos de volcado de subprocesos (ejecutable, bloqueo, pila de códigos, correlación de ID de subprocesos del sistema operativo)
13. · ¿Cómo ver la información de subprocesos de aplicaciones Java?

Seis, uso del marco

1. · Describe los tres estados de Hibernación.
2. El ciclo de vida del frijol en primavera.
3. · Procesamiento de solicitudes de proceso SpringMVC o Struts.
4. · ¿Qué problema resuelve Spring AOP? ¿Como paso?
5. · ¿Cuál es la propiedad de propagación de la transacción Spring? ¿Qué afectará?
6. · ¿Cuál es la diferencia entre BeanFactory y FactoryBean en Spring?
7. · ¿Cuál es el principio de IOC en el marco de Spring?
8. · ¿Cuáles son las diversas formas de inyección de dependencia en Spring?
9. · Flujo de trabajo de Struts
10. · ¿Cómo implementar un aspecto con Spring?
11. · ¿Cómo implementa Spring las transacciones de la base de datos?
12. · Uso de cachés primarios y secundarios de Hibernate y comprensión de la carga
diferida ; 13. · ¿Cómo implementa mybatis el envío de lotes?

Siete, relacionado con la base de datos

1. · ¿Cuáles son las características de MySQL InnoDB y Mysaim?
2. · ¿Cuál es la diferencia entre bloqueo optimista y bloqueo pesimista?
3. · ¿Cuál es el nivel de aislamiento de la base de datos? cual es el efecto?
4. El principio básico de la sincronización maestro-esclavo de MySQL.
5. · Seleccione * de la tabla t donde tamaño> 10 agrupe por tamaño orden por tamaño orden de ejecución de instrucción SQL?
6. · Cómo optimizar el rendimiento de la base de datos (índice, subbase de datos y tabla, operación por lotes, algoritmo de paginación, actualización de SSD del disco duro, optimización comercial, implementación maestro-esclavo)
7. · ¿En qué circunstancias SQL no usará índices (no incluidos, no iguales a, Función)
8. · ¿En qué campo se indexa generalmente (el campo con más datos filtrados)
9. · ¿Cómo encontrar todas las filas cuyo campo de nombre no contiene "XYZ" de una tabla?
10. · MySQL, implementación de índice B +, implementación de bloqueo de filas, optimización de SQL
11. · Redis, RDB y AOF, cómo hacer alta disponibilidad y clúster
12. · Cómo resolver el problema de alta concurrencia y reducción de inventario
13. · Implementación de índice en motor de almacenamiento mysql Mecanismo;
14. Varias granularidades de las transacciones de bases de datos;
15. Bloqueos de filas, bloqueos de tablas; bloqueos optimistas, bloqueos pesimistas

Ocho, protocolo de red y programación de red

1. El proceso de TCP para establecer una conexión.
2. El proceso de desconexión de TCP.
3. · ¿La lógica detrás del navegador 302 jump?
4. · El proceso interactivo del protocolo HTTP. ¿Cuál es la diferencia entre HTTP y HTTPS y cómo interactúa SSL?
5. · ¿Cuál es la relación entre Rest y Http? Todo el mundo dice que Rest es muy ligero, ¿cómo entiendes el estilo de Rest?
6. · ¿Cuál es el uso del protocolo de ventana deslizante de TCP? Habla sobre el principio.
7. · ¿Cuáles son los métodos del protocolo HTTP?
8. · ¿Cuál es la diferencia entre un conmutador y un enrutador?
9. · ¿El proceso básico de interacción Socket?
10. · Protocolo (estructura del mensaje, transmisión reanudable, descarga multiproceso, lo que es una conexión larga)
11. · Protocolo tcp (proceso de establecimiento de conexión, inicio lento, ventana deslizante, modelo de siete capas)
12. · Protocolo de servicio web (wsdl / formato de jabón, la diferencia del protocolo de descanso)
13. · Los beneficios de NIO, modelo de hilo de Netty, qué es copia cero

Nueve, Redis y otros sistemas de almacenamiento en caché / middleware / NoSQL / Hash consistente, etc.

1. · Enumere un modelo de simultaneidad común para los clientes de Redis.
2. · ¿Cómo implementa HBase la consulta difusa?
3. · Enumerar un middleware de mensajes de uso común, si el mensaje se va a conservar, ¿cómo realizarlo?
4. · ¿Cómo implementar un Hashtable? ¿Cómo considera su diseño los conflictos de Hash? ¿Cómo optimizar?
5. · Caché distribuido, hash consistente
6. · Algoritmo LRU, asignación de bloques, cómo reducir la fragmentación de la memoria
7. · Cómo resolver el problema del hotspot de caché de una sola máquina
8. · ¿Qué es el filtro bloom y su principio de implementación? ¿Qué significa falso positivo?
9. · La diferencia entre memcache y redis
10. · Cuáles son las funciones de zookeeper y cómo se realiza el algoritmo de elección
11. · El proceso map / reduce, cómo usar map / reduce para lograr estadísticas conjuntas de dos fuentes de datos

10. Patrones de diseño y refactorización

1. · ¿Puede dar ejemplos de algunos patrones de diseño comunes
2. · ¿Qué principios seguirá al diseñar un paquete de fábrica?
3. · ¿Puede enumerar un proyecto / biblioteca de código abierto que utilice el modelo de visitante / decorador?
4. · ¿Cuáles son sus patrones de diseño más utilizados al codificar? ¿En qué escenario se utiliza?
5. · ¿Cómo implementar un singleton?
6. · Modo proxy (proxy dinámico)
7. · Modo singleton (modo de hombre perezoso, modo de hombre malvado, cómo resolver la inicialización concurrente, el uso de volátiles y de bloqueo)
8. · ¿Cuáles son los patrones de diseño en el código fuente de JDK que le impresionan Utilice, tome un ejemplo?

Once: Microservicios

1. ¿Qué es un microservicio?

2. Cómo comunicarse de forma independiente entre microservicios

3. ¿Cuáles son las diferencias entre springCloud y dubbo?

4. Springboot y springcloud, ¿podría hablar sobre su comprensión de ellos?

5. ¿Qué es un disyuntor de microservicio? ¿Qué es la degradación del servicio?

6. ¿Cuáles son las ventajas y desventajas de los microservicios? Hable sobre los pozos que encontró en el desarrollo del proyecto.

7. ¿Cuáles son las pilas de tecnología de microservicios que conoce? Por favor enumere uno o dos

8. Tanto eureka como zookeeper pueden proporcionar funciones de registro y descubrimiento de servicios, por favor díganos la diferencia entre los dos.

para resumir

Como arquitecto de sistemas, debe convertirse en el instructor de rutas técnicas de su equipo de desarrollo; tener una sólida capacidad de pensamiento sistémico; debe distinguir entre una gran cantidad de métodos y herramientas de sistemas en conflicto que son efectivos y que no lo son. El arquitecto debe ser una persona madura, rica, experimentada, bien educada, de rápido aprendizaje, con buena comunicación y capacidad para tomar decisiones. La abundancia significa que debe tener conocimientos prácticos en el campo empresarial, y el conocimiento proviene de la experiencia o la educación. Debe tener un amplio conocimiento de varias tecnologías y ser competente en una tecnología específica, al menos comprender la tecnología informática general para determinar el mejor tipo de tecnología u organizar un equipo para llevar a cabo la evaluación técnica. Un buen arquitecto puede considerar y evaluar todas las soluciones técnicas generales disponibles para resolver el problema. Se requieren buenas habilidades de comunicación oral y escrita. Los modelos visuales y las discusiones de grupo se utilizan generalmente para comunicar y guiar al equipo para asegurar que los desarrolladores construyan sistemas de acuerdo con la arquitectura.
Recientemente, es el mejor momento para encontrar trabajo. ¡Te deseo todo lo mejor para encontrar tu trabajo favorito!
Recientemente recopilé muchas otras preguntas clásicas de entrevistas en Internet, así como varios puntos de conocimiento. Los amigos que lo necesiten pueden hacer clic aquí. Código: qf

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/S11035762/article/details/108730408
Recomendado
Clasificación