¿Las entrevistas técnicas plantearán muchas preguntas técnicas?
El autor en realidad no pensó en ir a una entrevista. Simplemente actualicé mi currículum en Zhaopin y luego recibí muchos correos electrónicos y llamadas telefónicas de cazatalentos para los que realmente no estaba listo. una entrevista, así que rechacé algunas. Tuve una entrevista con una empresa. Como hace mucho tiempo que no tengo una entrevista, también quiero ir a la entrevista para aprender. Sin más preámbulos, permítanme compartir con ustedes mi experiencia de la entrevista a las 10:30 am del 4 de enero de 2018:
En primer lugar, el cazatalentos o los recursos humanos de la empresa enviarán la presentación de la empresa y los requisitos laborales a su correo electrónico (o QQ, WeChat). La siguiente es la descripción del trabajo que me dio el cazatalentos. Ética profesional, presentación de la empresa e información del aviso de entrevista. No lo publicaré, pero publicaré los requisitos del trabajo:
Descripción del trabajo:
1. , optimización y mantenimiento del servidor de aplicaciones;
2 Responsable del respaldo, gestión, mantenimiento y análisis de la información de registro del sistema de aplicaciones;
3. y mantenimiento, resolución de problemas, análisis de rendimiento y optimización del sistema de aplicaciones;
4 Responsable del desarrollo, implementación, actualización y mantenimiento de sistemas de implementación de aplicaciones, sistemas de configuración del entorno y sistemas de monitoreo, y construcción de un alto nivel. -Plataforma de operación y mantenimiento de rendimiento.
Requisitos laborales:
1. Familiarizado con los conocimientos básicos del sistema operativo Linux y competente en el uso de comandos operativos comunes de Linux;
2. Nginx, HAproxy y otras aplicaciones Implementación, configuración, optimización y mantenimiento de software relacionado;
3. Familiarizado con conocimientos básicos de red, familiarizado con los principios de funcionamiento de TCP/IP, capaz de configurar conmutadores o enrutadores, y capaz de analizar las condiciones de la red de manera competente
4. Familiarizado con uno o más de Shell/perl/python para desarrollar programas de operación y mantenimiento;
5. Familiarizado con Nagios, Ganglia y otros sistemas de monitoreo. software
Ver ¿Crees que los requisitos anteriores no son demasiado altos? Si miras de cerca, encontrarás que esta empresa requiere bastante, no solo conocimiento de la red (parece que todas las empresas que están familiarizadas con él) TCP/IP escribirá algo como estos requisitos) y también desarrollará habilidades. Creo que muchos hermanos que se dedican a la operación y mantenimiento tienen dolor de cabeza en el área de redes y no son muy buenos configurando y administrando conmutadores y enrutadores.
Luego, el autor conoció en detalle su empresa, comprendió los requisitos del trabajo y revisó brevemente los puntos de conocimiento y los puntos técnicos que se pueden preguntar. El día de la entrevista levántate temprano y asegúrate de cepillarte los dientes. Especialmente para aquellos que tienen mal aliento, lo mejor es preparar un chicle y masticar un chicle antes de llegar a la empresa de entrevistas para evitar oler el olor. entrevistador debido a tu respiración. Pierdes puntos en la mente del entrevistador. Recuerde desayunar. Si va a entrevistar por la tarde, también debe almorzar. Después de desayunar, tendrá energía. Ojo también, trae tu currículum y un bolígrafo, aunque allí también tendrán tu currículum, por si acaso, ten tu currículum preparado.
Finalmente, el punto clave es comunicarse con el entrevistador. Las empresas con pruebas escritas le pedirán que responda algunas preguntas de la entrevista. Si no hay una prueba escrita, conversará directamente con el entrevistador. Mi comunicación con el entrevistador. Compartiré con ustedes algunas de las preguntas que recordé después de terminar esto. El autor recordó 7 preguntas en una *** Parece que hay dos preguntas más que realmente no puedo recordar. Si tiene respuestas más apropiadas, asegúrese de publicarlas juntas. Discusión y progreso:
1. (Casi todas las empresas le pedirán que se presente primero, como si fuera un curso obligatorio)
Respuesta del autor: Aquí se omite la presentación del autor. El autor recomienda que se dedique el tiempo para presentarse. No sea demasiado largo, de 3 a 4 minutos es apropiado. Si habla demasiado, el entrevistador pensará que habla demasiado. No está bien decir muy poco, ya que eso hará que la gente sienta que tu experiencia es demasiado simple y vacía. En circunstancias normales, cuando se presenta, el entrevistador está mirando su currículum en este momento. Necesita leer su currículum y escucharlo presentarse al mismo tiempo. Si termina de presentarse en unas pocas palabras, él. Definitivamente si aún no te has recuperado, tu imagen se reducirá. Al presentar, debe tener un pensamiento claro y una lógica clara. Es mejor presentarlo basándose en la experiencia escrita en su currículum. Esto puede acercarle el pensamiento del entrevistador y permitirle seguir su pensamiento. No divagues aquí y allá.
Intente presentar lo menos posible sobre su personalidad y pasatiempos (es mejor no mencionarlos en absoluto. Puede simplemente enumerar para cuántas empresas ha trabajado (enumere hasta 3 empresas/incluida la empresa para la que trabaja actualmente). y tenga cuidado de no estropear el orden). ¿De qué tipo de trabajo es responsable en esas empresas y qué tecnologías ha utilizado? Concéntrese en presentar de qué tipo de trabajo es responsable su empresa actual. Puede presentarlo en un momento. detalle, para no confundir al entrevistador.
2. ¿Cómo implementar la publicación en escala de grises?
Respuesta del autor: De hecho, no respondí bien a esta pregunta, así que no la escribiré para engañar a todos. Cada uno tiene una buena manera de compartirlo. Sin embargo, luego vi la sugerencia de un internauta en Zhihu y pensé que era buena. Puede consultarla: /question/20584476
3. ¿Está familiarizado con Mongodb?
Respuesta del autor: Lo he implementado pero no lo he estudiado en profundidad. Generalmente, mongodb implementa clústeres fragmentados maestro-esclavo o mongodb; se recomienda implementar 3 o 5 servidores. La idea básica de la fragmentación de MongoDB es dividir la colección en partes pequeñas. Estos bloques se distribuyen en varios sectores, y cada sector es responsable de solo una parte de los datos totales. Para el cliente, no es necesario saber que los datos se han dividido, ni saber qué fragmento del servidor corresponde a qué datos. Antes de fragmentar los datos, se debe ejecutar un proceso de enrutamiento y el nombre del proceso es mongos. Este enrutador sabe dónde se almacenan todos los datos y la correspondencia entre datos y sectores. Para el cliente, solo sabe que un mongod ordinario está conectado durante el proceso de solicitud de datos, y se enruta al segmento donde se encuentran los datos de destino a través de la relación correspondiente entre los datos en el enrutador y el segmento. una respuesta a la solicitud, el enrutador la recogerá y la enviará de vuelta al cliente.
4. ¿Cómo publicar y revertir, y cómo implementarlo usando Jenkins?
Respuesta del autor: Versión: Jenkins configura la ruta del código (SVN o GIT), luego extrae el código y lo etiqueta. Si necesita compilar, compílelo, envíelo al servidor de publicación después de la compilación (los scripts se pueden ajustar en Jenkins) y luego distribúyalo desde el servidor de distribución al servidor comercial.
Revertir: según el número de versión, vaya al servidor de publicación para encontrar la versión correspondiente
5. ¿Modo de trabajo de Tomcat?
Respuesta del autor: Tomcat es un contenedor JSP/Servlet. Como contenedor de Servlet, tiene tres modos de trabajo: contenedor de Servlet independiente, contenedor de Servlet en proceso y contenedor de Servlet fuera de proceso.
Las solicitudes que ingresan a Tomcat se pueden dividir en las dos categorías siguientes según el modo de trabajo de Tomcat:
Tomcat como servidor de aplicaciones: la solicitud proviene del servidor web front-end, que puede sea Apache, IIS, Nginx, etc.;
Tomcat como servidor independiente: la solicitud proviene del navegador web;
6.
Respuesta del autor: Ahora el negocio de la empresa se ejecuta en Alibaba Cloud. Nuestro monitoreo preferido es utilizar Alibaba Cloud Monitoring. Viene con plantillas de monitoreo para ECS, RDS y otros servicios, que se pueden combinar. con reglas de alarma de personalización para activar elementos de monitoreo. El negocio de la empresa anterior estaba alojado en IDC y utilizaba la solución de monitoreo zabbix. Zabbix tiene una interfaz gráfica rica y viene con muchas plantillas de monitoreo. En particular, hace un muy buen trabajo al descubrir y monitorear automáticamente múltiples particiones, múltiples tarjetas de red, etc. Sin embargo, es necesario instalar el agente Zabbix en cada cliente (extremo supervisado).
7. ¿Cómo se realiza una copia de seguridad de los datos, incluida la copia de seguridad de la base de datos?
La respuesta del autor: en un entorno de producción, ya sean datos de aplicaciones o datos de bases de datos, habrá una arquitectura o clúster maestro-esclavo cuando se implemente por primera vez, que a su vez es una copia de seguridad en caliente de los datos. de hecho, considere la copia de seguridad en frío. Para la copia de seguridad, use un servidor dedicado como servidor de respaldo. Por ejemplo, puede usar rsync+inotify con tareas programadas para lograr una copia de seguridad en frío de los datos. Si se trata de una copia de seguridad del paquete de lanzamiento, normalmente hay una. servidor de lanzamiento, y cada lanzamiento se guardará. Buena versión de la bolsa.
Resumen
Permítanme resumir algunas cosas a las que prestar atención durante la entrevista. Quizás el autor no tenga razón. Para que nuestros hermanos de operación y mantenimiento obtengan salarios altos, todos deben hacerlo. testifique, salgan y progresen juntos y discutan juntos:
Primero, debe estar familiarizado con su currículum. Debe poder explicar las habilidades escritas en su currículum, porque muchas de las preguntas del entrevistador serán preguntas. usted. Está escrito en su currículum. Por ejemplo, su currículum enumera una habilidad como "Familiarizado con la implementación, instalación y principios de la base de datos MySQL". Ahora que ha escrito dicha habilidad, incluso si no está familiarizado con ella, aún necesita comprender los principios de MySQL y poder dar una idea aproximada. Si el entrevistador le pregunta sobre el elemento que escribió y no puede responderlo, sus puntos se reducirán en su mente. Básicamente, hay pocas esperanzas para esta entrevista.
En segundo lugar, si el entrevistador te hace una pregunta que no sabes, simplemente di que no la conoces y que no la has estudiado en detalle. No pretendas entender ni hablar de ella. Un montón de temas inútiles para encubrir, esto sólo hará que el entrevistador se sienta resentido contigo.
En tercer lugar, si está bien preparado, podrá recordar más conocimientos teóricos. Generalmente, las preguntas más frecuentes en las entrevistas son los principios. Rara vez pregunto cómo se configuran los archivos de configuración específicos. Antes de la entrevista, también debe comprender claramente la "descripción del trabajo" y los "requisitos del trabajo". Aunque a veces la mayoría de las personas no hacen preguntas sobre los requisitos del trabajo, aún debe comprenderlos y estar familiarizado con ellos.
En cuarto lugar, debe resumir después de la entrevista. Trate de recordar cada pregunta formulada por el entrevistador y regístrela cuando regrese. Si le hacen una pregunta que no sabe, debe consultar Baidu inmediatamente. O busca un amigo para que te lo aclare después, entiéndelo, para que puedas recordar tus esfuerzos y es posible que te vuelvan a hacer la misma pregunta en la próxima entrevista.
Después de preguntar, el entrevistador empezó a hablarme sobre salario y remuneración, y me preguntó cuánto costaría cumplir con mis requisitos. No podía revelarlo en absoluto. Podía charlar en privado, jaja. Lo actualizaré uno tras otro en el futuro. Las experiencias y preguntas de entrevistas anteriores pueden ser reimpresas o recopiladas por amigos que necesiten discutirlas juntos.
Basado en la atmósfera entusiasta de todos, el autor pasó otra tarde recordando y resolviendo lo que sucedió cuando estaba en el borde del Tercer Anillo Este el 24 de febrero de 2017 (era casi al Cuarto Anillo Este Carretera, y no había metro para ir allí), tuve que trasladarme al autobús cuando llegué a Sihui). Afortunadamente, el autor tiene la costumbre de tomar notas y registrar todas las preguntas de las entrevistas anteriores. Todavía está fresco en mi memoria, porque esta vez esta empresa me hizo una oferta, pero realmente no quería ir a esta empresa, así que la rechacé por alguna razón. No seas tan poco confiable como yo. La siguiente es una descripción de los requisitos laborales en esta empresa:
Responsabilidades laborales:
1 Responsable del control de versiones, construcción y gestión de lanzamientos de los productos de la empresa;
2, Responsable de la gestión de la biblioteca de configuración unificada de la empresa, la gestión y asignación de permisos precisas y oportunas y la copia de seguridad de la configuración periódica.
3. servidores;
4, Responsable de la instalación, configuración, monitoreo y mantenimiento del sistema operativo Linux, manejo de problemas, actualizaciones de software, respaldo de datos, respuesta de emergencia, resolución de problemas, etc., para garantizar el funcionamiento estable de el entorno en línea;
5. Responsable de respaldar el funcionamiento estable de la plataforma las 24 horas, los 7 días de la semana y la planificación de capacidad con visión de futuro;
6. y la instalación, despliegue y mantenimiento de sistemas de red.
Requisitos laborales:
1. Licenciatura o superior en carreras relacionadas con la informática, más de 2 años de experiencia en operación y mantenimiento o gestión de configuración.
2. Familiarizarse con al menos un sistema de monitoreo, como Nagios/Zabbix/, etc.
3. Estar familiarizado con al menos una herramienta de administración de clústeres, como Ansible/SaltStack, etc.;
4. Haber utilizado herramientas de publicación integradas para publicar. Se prefiere la experiencia de construcción. Por ejemplo: Bamboo o Jenkins;
5. Familiarizado con el sistema operativo Unix/Linux, familiarizado con middleware como Weblogic/tomcat, capaz de escribir scripts de shell, familiarizado con el proceso de desarrollo de software y productos de proceso, y tener cierta base de red;
6. Familiarizado con rsyslog, flume y otros sistemas de recopilación y procesamiento de registros;
7. Tener una gran conciencia de seguridad y fuertes habilidades de comunicación, coordinación y aprendizaje, y buen trabajo en equipo. Espíritu y buena capacidad de trabajo. Ser proactivo.
Después de que pasamos, la chica de la recepción me llevó al sótano de su empresa. Escaneé el entorno circundante. Parecía que había una sala de computadoras al lado, porque escuché el sonido de. el servidor. Después de esperar unos minutos, el entrevistador bajó. Parecía más delgado y tenía aproximadamente la misma altura que yo (probablemente menos de 120 cm). Dijo que estaba a cargo del departamento de operación y mantenimiento y luego me pidió que lo presentara. Yo mismo primero. Una rutina requiere una presentación, por lo que los hermanos deben practicar bien la autopresentación. Luego comenzó a hacerme preguntas. Tuve una buena conversación con el entrevistador. Me hizo al menos 10 preguntas. Recordé las siguientes 10 preguntas:
1. desde la carga de Nginx?
Respuesta del autor: Creo que esta pregunta no se formuló bien en la entrevista. Normalmente, la pregunta sería "¿Qué tecnologías de equilibrio de carga y algoritmos de programación tiene LVS?". Respondí la pregunta de la misma manera que dije, y él asintió con frecuencia de todos modos. Por supuesto, la respuesta del autor puede no ser tan detallada como lo que he recopilado a continuación, pero le expliqué claramente el significado.
LVS es la abreviatura de servidor virtual Liunx. La tecnología de equilibrio de carga y el sistema operativo Linux proporcionados por LVS se pueden utilizar para lograr clústeres de servidores de alto rendimiento y alta disponibilidad. Generalmente, LVS se encuentra en la parte frontal. Extremo de todo el sistema de clúster, que consta de uno o más programadores de carga (Director Server) y se distribuye a los servidores de aplicaciones (Real Server). Funciona en la capa 4 (es decir, la capa de transporte en TCP/IP se implementa mediante el módulo IPVS basado en la tecnología de equilibrio de carga IP). Hay tres mecanismos de equilibrio de carga para IPVS, a saber, NAT, TUN y DR. De la siguiente manera: VS/NAT: es decir (servidor virtual a través de traducción de direcciones de red)
Es decir, la tecnología de traducción de direcciones de red implementa un servidor virtual. Cuando una solicitud de usuario llega al programador, el programador solicitará el destino. La dirección del mensaje (es decir, la dirección IP virtual) se reescribe en la dirección del Real Server seleccionado, y el puerto de destino del mensaje también se cambia al puerto correspondiente del Real Server seleccionado, y finalmente la solicitud del mensaje se envía a el servidor real seleccionado. Después de que el servidor obtiene los datos, cuando Real Server devuelve los datos al usuario, debe pasar por el programador de carga nuevamente para cambiar la dirección de origen y el puerto de origen del mensaje a la dirección IP virtual y el puerto correspondiente, y luego enviar los datos al usuario para completar todo el proceso de programación de carga.
Se puede ver que en el modo NAT, las solicitudes de los usuarios y los mensajes de respuesta deben reescribirse mediante la dirección del servidor Director. Cuando se realizan más y más solicitudes de los usuarios, la capacidad de procesamiento del programador se denominará cuello de botella. . VS/TUN: Es decir (servidor virtual a través de túnel IP)
Es decir, la tecnología de túnel IP implementa servidores virtuales. Su programación y administración de conexiones son las mismas que las de VS/NAT, pero su método de reenvío de paquetes es diferente. En el modo VS/TUN, el programador utiliza tecnología de túnel IP para reenviar las solicitudes de los usuarios a un Servidor Real, y este Servidor Real lo hará directamente. La respuesta a las solicitudes de los usuarios ya no pasa por el programador de front-end. Además, no existe ningún requisito de ubicación geográfica del Servidor Real. Puede estar ubicado en el mismo segmento de red que el Servidor Director o puede ser independiente. red. Por lo tanto, en el modo TUN, el programador solo procesará las solicitudes de mensajes del usuario y el rendimiento del sistema del clúster mejora enormemente. VS/DR: es decir (servidor virtual mediante enrutamiento directo)
Es decir, la tecnología de enrutamiento directo se utiliza para implementar servidores virtuales. Su programación y administración de conexiones son las mismas que en VS/NAT y VS/TUN, pero su método de reenvío de paquetes es diferente. VS/DR envía la solicitud al Real Server reescribiendo la dirección MAC del paquete de solicitud, mientras que Real Server. El servidor devuelve la respuesta directamente al cliente, eliminando la sobrecarga del túnel IP en VS/TUN. Este método tiene el rendimiento más alto entre los tres mecanismos de programación de carga, pero debe requerir que tanto Director Server como Real Server tengan una tarjeta de red conectada al mismo segmento de red física.
En respuesta al algoritmo de programación de carga, IPVS se implementa en ocho algoritmos de programación de carga. Hay cuatro algoritmos de programación comúnmente utilizados (programación por turnos, programación por turnos ponderada, programación con mínimo enlace y programación con mínimo enlace ponderado). ). En términos generales, estos cuatro son suficientes y no será necesario explicar estos cuatro algoritmos en detalle. Siempre que explique claramente las tres tecnologías de equilibrio de carga anteriores, el entrevistador quedará muy satisfecho con esta pregunta. A continuación, puede hablar brevemente sobre la diferencia con nginx:
Ventajas de LVS:
Fuerte resistencia a la carga, trabajando en la capa 4 solo para distribución, sin generación de tráfico, esta característica también determina que tiene el rendimiento más sólido entre el software de equilibrio de carga, no hay tráfico y también garantiza que el rendimiento del equilibrador IO no se verá afectado por un gran tráfico.
Funciona de manera estable y tiene una integridad dual; -Soluciones de respaldo en caliente de la máquina, como LVS+Keepalived y LVS+Heartbeat;
Tiene una amplia gama de aplicaciones y puede equilibrar la carga de todas las aplicaciones;
La configuración es relativamente baja, Lo cual es una desventaja y también una ventaja, porque no hay nada demasiado configurable, por lo que no se requiere mucho contacto, lo que reduce en gran medida la posibilidad de error humano.
Desventajas de LVS:
El software en sí no admite el procesamiento regular y no puede separar dinámico y estático, lo que resalta las ventajas de Nginx/HAProxy+Keepalived.
Si la aplicación del sitio web es relativamente grande, LVS/DR+Keepalived será más complicado, especialmente si hay una máquina con una aplicación Windows Server detrás, el proceso de implementación, configuración y mantenimiento será más problemático. Relativamente hablando, Nginx/HAProxy+Keepalived es más simple.
Ventajas de Nginx:
Al trabajar en la capa 7 de OSI, se pueden implementar algunas estrategias de descarga para aplicaciones http. Por ejemplo, para nombres de dominio y estructuras de directorios. Su regularidad es más poderosa y flexible que HAProxy;
Nginx tiene muy poca dependencia de la red, en teoría, puede realizar funciones de carga si se le puede hacer ping. Esta es también su ventaja.
Nginx es relativamente simple de instalar y configurar, y es más conveniente de probar;
Puede soportar una alta presión de carga y es estable, y generalmente puede admitir más de decenas de miles de concurrencia; p>
Nginx puede detectar fallas internas del servidor a través del puerto, como códigos de estado, tiempos de espera, etc. devueltos por el servidor que procesa páginas web, y volver a enviar solicitudes que devuelven errores a otro nodo;
Nginx no es sólo un excelente software de equilibrador de carga/proxy inverso, sino que también es un potente servidor de aplicaciones web. LNMP también es un entorno web muy popular ahora y compite con el entorno LAMP. Tiene ventajas sobre Apache en el procesamiento de páginas estáticas, especialmente en la resistencia a la alta concurrencia;
Nginx ahora se utiliza como un entorno web inverso. caché de aceleración Se está volviendo cada vez más maduro y más rápido que el servidor Squid tradicional. Los amigos que lo necesiten pueden considerar usarlo como un acelerador de proxy inverso;
Desventajas de Nginx:
Nginx sí. No es compatible con la URL para detectar.
Nginx sólo puede soportar http y correo electrónico, que es su debilidad.
Las capacidades de mantenimiento de sesiones y guía de cookies de Nginx son relativamente deficientes.
2. ¿Cuál es el principio del clúster de Redis, cómo se implementa la fragmentación de Redis y en qué entornos utiliza Redis su empresa?
Respuesta del autor: Principio del clúster de Redis:
De hecho, su principio no se puede explicar claramente en unas pocas oraciones. Redis no admite la agrupación en clústeres antes de la versión 3.0. El número de nodos es 1000 y se necesitan al menos 3 (maestro) + 3 (esclavo) para establecer un clúster. Es una arquitectura de almacenamiento distribuido sin centros que puede compartir datos entre múltiples nodos, resolviendo el problema de alta disponibilidad y escalabilidad. Preguntas sobre Redis, etc. El clúster puede dividir automáticamente los datos en varios nodos. Cuando falla un nodo del clúster, redis puede continuar procesando las solicitudes de los clientes.
Fragmentación de Redis:
La fragmentación (particionamiento) es el proceso de dividir sus datos en múltiples instancias de Redis, de modo que cada instancia solo contendrá un subconjunto de todas las claves. Cuando la cantidad de datos es grande, los datos se dispersan y almacenan en múltiples bases de datos para reducir la presión de conexión en un solo nodo y lograr un almacenamiento de datos masivo. Los métodos de implementación de fragmentación generalmente se dividen en los siguientes tres tipos:
(1) Realizar fragmentación en el cliente. En este método, el cliente determina la instancia de Redis que se conectará y luego accede directamente a la instancia de Redis correspondiente; ;
(2) Realice la fragmentación en el proxy de esta manera, el cliente no accede directamente a la instancia de Redis y no sabe a qué instancia de Redis quiere acceder, pero el proxy reenvía la solicitud. y el resultado; el proceso de trabajo es: el cliente primero envía la solicitud al agente, el agente determina a qué instancia de redis acceder a través del algoritmo de fragmentación y luego envía la solicitud a la instancia de redis correspondiente, y la instancia de redis devuelve el resultado. al agente y al agente Finalmente, los resultados se devuelven al cliente.
(3) Realizar fragmentación en el servidor de Redis; este método se denomina "enrutamiento de consultas". En este método, el cliente selecciona aleatoriamente una instancia de Redis para enviar una solicitud. instancia de Redis actual, será responsable de reenviar la solicitud a la instancia de Redis correcta. En algunas implementaciones, la instancia de Redis no reenviará la solicitud, pero enviará la información de Redis correcta al cliente, y el cliente luego irá a la instancia de Redis. instancia de redis correcta. Envíe una solicitud.
En qué entornos se utiliza Redis:
Redis se utiliza en entornos java y php. Principalmente almacena en caché datos de información de inicio de sesión del usuario, datos de detalles del dispositivo, datos de inicio de sesión de miembros, etc.
3. ¿Cómo contarías las IP visitadas actualmente y las ordenarías?
La respuesta del autor: para contar las IP de acceso de los usuarios, use awk combinado con uniq y sort para filtrar los registros de access.log para contarlos y ordenarlos. Generalmente, esta respuesta es suficiente. Por supuesto, también puedes nombrar otras formas de calcular las estadísticas. Estos son tus puntos de bonificación.
4. ¿Qué tecnologías de virtualización utilizarás?
La respuesta del autor: vmware vsphere y kvm. El que uso más es la virtualización de vmware vsphere. Varios libros usan vmware vsphere en el entorno de producción. vmware es una tecnología de virtualización de arquitectura nativa, lo que significa que puede ejecutarse directamente en el hardware. Kvm es una tecnología de virtualización basada en la arquitectura del host, que se ejecuta en el sistema. vmware vcenter
Es más conveniente de administrar. La interfaz gráfica de administración es muy potente y estable. Generalmente es adecuada para uso empresarial. La interfaz de administración KVM es ligeramente inferior y requiere que los administradores dediquen algún tiempo a aprender sus técnicas de mantenimiento y administración.
5. Si alguien informa que llamar a la interfaz backend es extremadamente lento, ¿cómo solucionará el problema?
Respuesta del autor: De hecho, no existe una respuesta específica para este tipo de preguntas. Solo depende de qué tan bien el contenido de su respuesta coincida con el del entrevistador y de si puede llegar al punto que él quiere. Depende principalmente de tu investigación. Esto es lo que dije: pregúntele a la persona que respondió qué aplicación de servicio o página tarda en llamar a qué interfaz y pídale que le envíe la página o la URL relacionada. En primer lugar, el análisis más intuitivo es presionar F12 en el navegador y. vea qué sucede. Qué parte del contenido es demasiado lenta (resolución DNS, carga de red, imágenes grandes, ciertos contenidos de archivos, etc.), si es así, tome las medidas adecuadas para solucionarlo (si la imagen es lenta, optimice la imagen, si la red es lenta, comprobar la situación de la intranet, etc.). En segundo lugar, mire los registros del servicio backend. De hecho, para la mayoría de los problemas, el análisis más efectivo es mirar los registros relevantes. Es mejor usar tail -f para rastrear los registros. Pruebe para acceder a los registros de la interfaz antes de que se puedan imprimir. Finalmente, excluya sql, busque sql y ejecútelo en mysql para ver si lleva mucho tiempo. Si lleva mucho tiempo, debe optimizar el problema de SQL para ver la situación del índice y otras cosas. optimizar en consecuencia. Si la cantidad de datos es demasiado grande, se puede dividir en tablas y, si se puede dividir en bases de datos, se puede dividir en bases de datos. Si no hay ningún problema con SQL, puede ser un problema con el código lógico que escribió. Revise el código línea por línea, encuentre los lugares que requieren mucho tiempo para modificar y optimizar la lógica.
6. La base de datos MySQL utiliza separación de lectura y escritura maestro-esclavo. La base de datos maestra escribe y la base de datos esclava lee. Si la base de datos esclava no se puede leer o la base de datos esclava lee extremadamente lentamente, ¿cómo se resuelve? ¿él?
Respuesta del autor: Siento que la respuesta a esta pregunta no es muy buena. Espero que los amigos que estén familiarizados con MySQL puedan darme algunas sugerencias. Tomando la resolución del problema como un requisito previo, primero agregue la cantidad de bibliotecas esclavas para resolver temporalmente el problema, luego tome el registro lento, analice la declaración SQL y optimice la optimización. Si es lento, el hardware no puede mantener el ritmo y es necesario actualizarlo, o el software debe depurarse y optimizarse, y el problema se refinará en detalle.
7. ¿Cuál es la diferencia entre CPU de un solo núcleo y de múltiples núcleos?
Respuesta del autor: Muy pocos entrevistadores harán esa pregunta. Incluso si te la hacen, debes responderla honestamente. Afortunadamente, el autor ha aprendido sobre CPU antes, y esto es lo que dije: una CPU de doble núcleo puede manejar múltiples tareas y ponerlas en cola secuencialmente. Una CPU de un solo núcleo maneja una tarea a la vez, procesando cada tarea del programa por turno. La ventaja del doble núcleo no es la frecuencia, sino la capacidad de manejar varias cosas al mismo tiempo. Un solo núcleo solo puede hacer una cosa a la vez. Por ejemplo, puede descargar BT en segundo plano, ver una película, copiar archivos y QQ en la recepción al mismo tiempo.
8. ¿Cuál es la diferencia entre disco mecánico y unidad de estado sólido?
El autor respondió: Oh no, ¿qué año es y preguntaste por el disco? Este entrevistador es un poco gracioso. Entonces tienes que responder:
HDD significa disco duro mecánico y SSD significa unidad de estado sólido. En primer lugar, en términos de rendimiento, las unidades de estado sólido casi superan a los discos duros mecánicos. Las velocidades de lectura y escritura de las unidades de estado sólido son definitivamente más rápidas que las de los discos duros mecánicos, porque las estructuras de las unidades de estado sólido y los discos duros mecánicos son. completamente diferente (no es necesario explicar la estructura específica). En segundo lugar, los discos de estado sólido casi no emiten ruido, mientras que los discos mecánicos son relativamente ruidosos. Además, a juzgar por la situación actual del mercado, los discos mecánicos generalmente tienen grandes capacidades y precios bajos; los discos de estado sólido tienen pequeñas capacidades y precios altos. Pero las empresas siguen prefiriendo los SSD.
9. ¿Qué sistemas de monitorización habéis utilizado?
Respuesta del autor: Esta pregunta de seguimiento se volvió a formular. Al autor también se le hizo una pregunta similar el 4 de enero de 2018. El autor ha utilizado zabbix, nagios, cacit, etc. Pero en esta entrevista solo dije que he usado zabbix y nagios. Después de terminar de hablar, el entrevistador me pidió que hablara sobre la diferencia entre los dos monitores:
En términos de funciones web y dibujo:
Nagios es simple e intuitivo, y alarmas y datos están todos ahí En la misma página, el rojo es el elemento de la pregunta. No realices ninguna configuración en el lado web de Nagios. Nagios requiere la instalación de complementos adicionales y los dibujos de los complementos no son lo suficientemente hermosos.
Los datos de monitoreo y las alarmas de Zabbix están separados. Para ver los elementos problemáticos, debe mirar el disparador y, para ver los datos, ver los datos más recientes. Además, zabbix tiene muchos otros elementos de configuración. Zabbix tiene una función de dibujo y puede mostrar manualmente varios elementos de monitoreo en una imagen.
En términos de servicios de monitoreo:
Nagios viene con muy pocos elementos de monitoreo. Monitorear algunos cambios, como múltiples particiones y múltiples tarjetas de red, requiere una configuración manual.
Zabbix viene con una gran cantidad de contenido de monitoreo. Parece que zabbix ha hecho mucho por usted desde el principio, especialmente cuando descubre y monitorea automáticamente múltiples particiones, múltiples tarjetas de red, etc. Sorprendido en ese momento, un sentimiento muy libre de preocupaciones.
En términos de configuración por lotes y alarmas:
Para el monitoreo por lotes de hosts, Nagios necesita usar scripts para agregar hosts en el lado del servidor y copiar los archivos de servicio. Nagios utiliza scripts para modificar los archivos de servicios de todos los hosts y agregar nuevos servicios.
Zabbix configura reglas de registro automático en el lado del servidor. Después de configurar las reglas, los nuevos clientes posteriores no necesitan operar en el lado del servidor. Zabbix solo necesita agregar manualmente un elemento de monitoreo a la plantilla.
En general:
Nagios necesita mucho tiempo para escribir complementos y Zabbix necesita mucho tiempo para explorar funciones.
Es más fácil comenzar con Nagios. Puedes dominar Nagios en dos días y Zabbix en dos semanas.
La función de dibujo de Zabbix es más poderosa que Nagios
El monitoreo por lotes y los cambios de servicio de Zabbix son más simples de operar; Nagios también es muy simple después de escribir el script de automatización. guión de automatización. Es muy agotador.
10. Dado un entorno, ¿cómo diseñaría una arquitectura de alta disponibilidad y alta concurrencia?
La respuesta del autor: si este entorno se implementa en la nube (como Alibaba Cloud), no es necesario considerar problemas de diseño de hardware. Puede conectarse directamente a la arquitectura estándar de alta disponibilidad y alta concurrencia de Alibaba Cloud SLB + ECS + RDS. Los servicios externos utilizan directamente la tecnología de equilibrio de carga SLB, y SLB de Alibaba los distribuye a los hosts ECS back-end. Se implementan varios hosts ECS y las aplicaciones se dividen en diferentes hosts ECS para subdividir los servicios tanto como sea posible. La base de datos utiliza la versión RDS de alta disponibilidad (arquitectura clásica de alta disponibilidad con un maestro y una copia de seguridad) o la versión financiera RDS (arquitectura de tres nodos con un maestro y dos copias de seguridad). Cuando se combina con otros servicios de Alibaba, está completamente bien. Cuando el volumen de negocios aumenta y el host no es suficiente, simplemente expanda horizontalmente el host ECS.
Si este entorno está alojado en IDC, entonces hay que considerar tanto el hardware como el software (servicios de aplicaciones). Para lograr una alta disponibilidad y una alta concurrencia en el hardware, las empresas deben comprar varios conjuntos de equipos de hardware de red (como equipos de carga F5, firewalls, conmutación de capa central y conmutación de capa de acceso), todos los cuales deben ser redundantes. diseño, entre dispositivos Todos deben tener una conexión de dos cables. Si todos los dispositivos se ejecutan en una sola máquina y uno de ellos se cuelga, toda su red quedará paralizada y no habrá alta disponibilidad ni alta concurrencia. Lo siguiente es considerar los servicios de aplicaciones para servicios externos, usaré las soluciones maduras de código abierto LVS + Keepalived o Nginx + Keepalived. Para la capa de caché, puedo considerar el clúster redis y el clúster Mongodb. Para otros servicios como middleware, kafka y zookeeper. Se puede utilizar el almacenamiento de imágenes, FastDFS o MFS. Si la cantidad de datos es grande y muy grande, se puede utilizar Hadoop como solución. La base de datos de fondo puede utilizar "maestro-esclavo + MHA". Un entorno de este tipo definitivamente satisfará la arquitectura de alta disponibilidad y alta concurrencia