Notas del autor: del arquitecto de clase P8 Ali: Chao Pengfei (¡el nombre real no es un nombre artístico!)
Función de notas: claramente organizada, fácil de entender con representación gráfica.
Resumen de contenido: incluye colecciones de Java, JVM, subprocesos múltiples, programación concurrente, patrones de diseño, cubo de la familia Spring, Java, MyBatis, ZooKeeper, Dubbo, Elasticsearch, Memcached, MongoDB, Redis, MySQL, RabbitMQ, Kafka, Linux, Netty, Tomcat, etc. Preguntas de la entrevista de Dachang, etc., ¡espere la pila de tecnología!
Dado que todo el documento es relativamente completo, el contenido es relativamente grande y la longitud no está permitida, la siguiente es una captura de pantalla. Si necesita obtener información, puede enviarme de forma privada [ notas ] en segundo plano después del artículo de tres enlaces o ver lo siguiente de forma gratuita.
Colección JAVA
- Herencia e implementación de la interfaz
- Lista
- ArrayList (matriz)
- Vector (implementación de matriz, sincronización de subprocesos)
- LinkList (lista vinculada)
- Conjunto
- HashSet (Hash 表)
- TreeSet (árbol binario)
JVM
JVM es la máquina virtual de Java, es una computadora ficticia, que puede simular varias funciones de computadora en la computadora real. JVM tiene su propia estructura de hardware completa, como procesador, pila y registro, etc., así como el sistema de instrucción correspondiente.
- Hilo
- Área de memoria JVM
- Memoria en tiempo de ejecución de JVM
- Recolección de basura y algoritmos
- JAVA cuatro tipos de referencia
- Algoritmo de recopilación generacional de GC VS algoritmo de recopilación de particiones
- Recolector de basura GC
- JAVA IO / NIO
- Mecanismo de carga de clases de JVM
Concurrencia multiproceso de JAVA
- Base de conocimientos concurrente de JAVA
- Método de implementación / creación de hilo JAVA
- 4 tipos de grupos de hilos
- Ciclo de vida del hilo (estado)
- 4 formas de terminar hilos
- La diferencia entre dormir y esperar
- La diferencia entre empezar y correr
- Subproceso de fondo JAVA
- Cerradura JAVA
- Método de hilo básico 4.1.11. Cambio de contexto de hilo
- Sincronización y punto muerto
- Principio de Thread Pool
- Principio de cola de bloqueo de JAVA
- Uso de CyclicBarrier, CountDownLatch, Semaphore
- El papel de la palabra clave volátil (visibilidad variable, prohibir el reordenamiento)
- Cómo compartir datos entre dos hilos
Principio de primavera
- Características de primavera
- Componentes del núcleo del resorte
- Módulos comunes de Spring
- Paquete principal de primavera
- Anotaciones comunes de primavera
- Integración de terceros de Spring
- Principio IOC de primavera
- Principio APO de primavera
- Principio de Spring MVC
- Principio de Spring Boot
- Principio JPA
- Caché de mybatis
- Arquitectura Tomcat
Dado que todo el documento es relativamente completo, el contenido es relativamente grande y la longitud no está permitida, la siguiente es una captura de pantalla. Si necesita obtener información, puede obtenerla directamente de forma gratuita después de tres artículos consecutivos.
Microservicio
Cuando entró por primera vez en la industria del software, todavía era una era de una sola aplicación. El concepto de separación de front-end y back-end aún no se ha popularizado. Durante el desarrollo, se necesita mucho tiempo para dedicar mucho tiempo a la JSP "potente". En ese momento, SOA ya se consideraba una nueva tecnología. Ahora que los microservicios se han vuelto populares, ¿qué producto de Internet no se denomina arquitectura de microservicios?
- ¿Qué sabes sobre microservicios?
- ¿Cuáles son las ventajas de la arquitectura de microservicios?
- ¿Cuáles son las características de los microservicios?
- ¿Cuáles son las mejores prácticas para diseñar microservicios?
- ¿Cómo funciona la arquitectura de microservicios?
- ¿Cuáles son las ventajas y desventajas de la arquitectura de microservicios?
- Monolítico, ¿cuál es la diferencia entre SOA y arquitectura de microservicio?
- ¿Qué desafíos enfrenta al usar la arquitectura de microservicio?
- ¿Cuáles son las principales diferencias entre SOA y arquitectura de microservicio?
- ¿Qué es la cohesión?
- ¿Qué es el acoplamiento?
- ¿Qué es REST / RESTful y cuál es su propósito?
Netty 与 RPC
- Principio de Netty
- Netty alto rendimiento
- Implementación de Netty RPC
- Tecnología clave
- Proceso central
- Códec de mensajes
- Proceso de comunicación
- Implementación de RMI
La Internet
- Arquitectura de red de 7 capas
- Principio TCP / IP
- Protocolo de enlace de tres vías TCP / cuatro manos agitadas
- Principio HTTP
- Principio CDN
- Sistema de servicio de distribución
- Sistema de equilibrio de carga
- Sistema de gestión
Iniciar sesión
- Slf4j
- Log4j
- Volver a iniciar sesión
- Ventajas del logback
- ALCE
Kafka
- Concepto Kafka
- Diseño de almacenamiento de datos de Kafka
- Archivo de datos de la partición (desplazamiento, MessageSize, datos)
- Segmentación de archivos de datos (lectura y escritura secuencial, comando de segmento, búsqueda binaria)
- Índice de archivo de datos (índice de segmento, almacenamiento escaso)
- Diseño de productor
- Equilibrio de carga (las particiones se distribuirán uniformemente a diferentes corredores)
- Envío por lotes
- Compresión (GZIP o Snappy)
- Diseño de consumidor
Aspecto Dubbo
- ¿Por qué utilizar Dubbo?
- ¿Cuáles son las capas del diseño arquitectónico general de Dubbo?
- ¿Qué marco de comunicación se usa por defecto? ¿Hay otras opciones?
- ¿Se bloquea la llamada de servicio?
- ¿Qué registro se utiliza generalmente? ¿Hay otras opciones?
- ¿Qué marco de serialización se usa de forma predeterminada y qué más sabe?
- ¿Cuál es el principio de que el proveedor de servicios puede lograr la desconexión por falla?
- ¿Por qué el lanzamiento del servicio no afecta a la versión anterior?
- ¿Qué protocolo recomienda Dubbo?
Hbase
- Concepto Hbase
- Almacenamiento columnar
- Concepto básico de Hbase
- Arquitectura del núcleo de Hbase
- Lógica de escritura de Hbase
- HBase contra Cassandra
- MongoDB
- Concepto MongoDB
- Funciones de MongoDB
Casandra
- Concepto de Cassandra
- Modelo de datos
- Hash consistente y nodo virtual de Cassandra
- Protocolo de chismes
- Replicación de datos
- Solicitud de escritura de datos y coordinador
- Solicitud de lectura de datos y reparación en segundo plano
- Almacenamiento de datos (CommitLog, MemTable, SSTable)
- Índice secundario (se genera una RowKey para indexar el resumen del valor)
- Lectura y escritura de datos
Patrones de diseño
- Criterios de diseño
- Patrón de método de fábrica
- Patrón de fábrica abstracto
- Modo singleton
- Modo constructor
- Modo de prototipo
- Modo adaptador
- Modo decorador
- Modelo de agencia
- Modo de apariencia
- Modo Puente
- Modo de combinación
- Modelo de peso mosca
- Modo de estrategia
- Patrón de método de plantilla
- Modo observador
- Subpatrón iterativo
- Modelo de cadena de responsabilidad
- Modo de comando
- Modo de nota
base de datos
- Motor de almacenamiento
- índice
- Tres paradigmas de base de datos
- La base de datos es transacción
- Procedimientos almacenados (conjunto de sentencias SQL para funciones específicas)
- Trigger (un programa que se puede ejecutar automáticamente)
- Estrategia de concurrencia de bases de datos
- Bloqueo de base de datos
- Bloqueo distribuido basado en Redis
- Tabla de clasificación
- Acuerdo de compromiso de dos fases
- Acuerdo de compromiso de tres fases
- Transacción flexible
- GORRA
Algoritmo de consenso
- Paxos
- Zab
- Balsa
- NWR
- Chisme
- Hash de consistencia
- Función hash consistente
- Principio de coherencia hash
Algoritmo JAVA
- Búsqueda binaria
- Algoritmo de clasificación de burbujas
- Algoritmo de ordenación por inserción
- Algoritmo de clasificación rápida
- Algoritmo de clasificación de colinas
- Combinar algoritmo de ordenación
- Algoritmo de clasificación de cubos
- Algoritmo de clasificación base
- Algoritmo de poda
- Algoritmo de retroceso
- Algoritmo de ruta más corta
- El algoritmo de matriz más grande
- Algoritmo de subsecuencia común más largo
- Algoritmo de árbol de expansión mínimo
estructura de datos
- Apilar
- Cola
- Enlace
- Tabla de picadillo
- Árbol binario ordenado
- Árbol negro rojo
- B-ÁRBOL
- mapa de bits
Hadoop
- Concepto de Hadoop
- HDFS
- Cliente
- NameNode
- Nodo de nombre secundario
- DataNode
- Mapa reducido
- JobTracker
- TaskTracker
- Tarea
- Reducir el proceso de ejecución de tareas
- El ciclo de vida de los trabajos de Hadoop MapReduce
- Envío e inicialización de trabajos
- Programación y seguimiento de tareas.
- Preparación del entorno operativo de la tarea
- Ejecución de tareas
- Tarea completada
Chispa - chispear
- Concepto de chispa
- Arquitectura central
- Componentes principales
- Modelo de programación SPARK
- Modelo de cálculo SPARK
- Proceso de operación SPARK
- Proceso SPARK RDD
- SPARK RDD
Tormenta
- Concepto de tormenta
- Arquitectura de clúster
- Nimbus (distribución de código maestro al supervisor)
- Supervisor (esclavo-gestiona el inicio y la terminación del proceso de trabajador)
- Trabajador (proceso que maneja específicamente la lógica del componente)
- Tarea
- ZooKeeper
- Modelo de programación (pico-> tupla-> perno)
- operación de opología
- Agrupación de transmisión de tormentas
- Administrador de recursos
- NodeManager
- ApplicationMaster
- Proceso de operación YARN
computación en la nube
- SaaS
- PaaS
- IaaS
- Estibador
- Openstack
- Espacios de nombres
- Proceso (proceso de aislamiento implementado por CLONE_NEWPID)
- Aislamiento de redes y redes
- Aislamiento de recursos y CGroups
- Duplicación y UnionFS
- Controlador de almacenamiento
Debido a las limitaciones de espacio, la información detallada del documento es demasiado completa y hay demasiados detalles, por lo que solo algunos de los puntos de conocimiento son capturas de pantalla para una introducción aproximada, ¡y cada nodo pequeño tiene un contenido más detallado! La siguiente es una captura de pantalla del catálogo:
Dado que todo el documento es relativamente completo, el contenido es relativamente grande y la longitud no está permitida, la siguiente es una captura de pantalla. Si necesita obtener información, puede escanear el siguiente artículo y obtenerlo directamente de forma gratuita después de tres artículos consecutivos.
La siguiente es una explicación en video de la entrevista de arquitectura java: