Arquitectura y principios de Nacos - Arquitectura general


inserte la descripción de la imagen aquí


origen nacos

Nacos se originó a partir del proyecto Wucaishi en Alibaba en 2008 (completando la división de microservicios y la construcción de plataformas comerciales) y creció en la prueba máxima de Double Eleven en diez años Ha acumulado la competitividad central de facilidad de uso, estabilidad y fiabilidad, y un excelente rendimiento.

En 2018, Nacos (el kernel interno de Configserver/Diamond/Vipserver de Alibaba ) será de código abierto.

inserte la descripción de la imagen aquí


Posicionamiento nacos

Nacos ( /nɑ:kəʊs/) es el acrónimo de Dynamic Naming and Configuration Service ; una plataforma dinámica de descubrimiento de servicios, gestión de configuración y gestión de servicios que facilita la creación de aplicaciones nativas de la nube.

Sitio web oficial: https://nacos.io/
Almacén: https://github.com/alibaba/nacos

inserte la descripción de la imagen aquí


Ventajas de Nacos

  • Facilidad de uso: modelo de datos simple, API tranquila estándar, consola fácil de usar y documentación completa.

  • Estable: 99,9 % de alta disponibilidad, resultado de la verificación de producción de productos internos de Alibaba durante 10 años, que admite escenarios a gran escala con millones de servicios, productos de código abierto con SLA de nivel empresarial.

  • En tiempo real: los cambios de datos se envían para que surtan efecto en milisegundos; a un nivel de 1w, el SLA promete que 10 000 instancias se conectan y desconectan en 1 segundo, y el 99,9 % de los envíos se completan; a niveles de 10w, el SLA promete que 1000 las instancias se conectan y desconectan en 3 segundos, y el 99,9 % de las inserciones se completan; en niveles de 100 000, el SLA promete que 10 000 instancias se conectan y desconectan 9s, el 99,9 % de las inserciones se completan.

  • Escala: servicios/configuraciones de 100 000 niveles, conexiones de un millón de niveles y gran escalabilidad.

inserte la descripción de la imagen aquí


ecología nacos

Nacos admite varios lenguajes principales, sin limitarse a Java. Es compatible con:

  • Java: integrado a través de Spring Cloud Alibaba, muy completo.
  • Go: Hay un cliente go-nacos dedicado.
  • Python: Hay cliente python-nacos.
  • C++: Hay cliente cpp-nacos.

Todos estos clientes admiten el protocolo de conexión larga de Nacos 2.0, que puede maximizar el rendimiento de Nacos.


Solución de microservicio Alibaba, recomendada para usar:

  • Dubbo: framework RPC para llamadas de servicio.
  • Nacos: descubrimiento de registro de servicios, centro de configuración.
  • Spring Cloud Alibaba: Integre Nacos para facilitar el desarrollo de Java.
  • Seata: Una solución de transacciones distribuidas bajo la arquitectura de microservicios.
  • Sentinel: El guardia de tráfico de la arquitectura de microservicios.

Se puede decir que esta solución es la mejor práctica en el ecosistema de microservicios de Java.

Además, Nacos también admite muy bien otras tecnologías relacionadas con microservicios:

  • Envoy: admite Nacos como mecanismo de detección de servicios.
  • Dapr: Soporte Nacos como centro de registro y configuración de servicios.

Por lo tanto, Nacos no solo es aplicable a Java, sino también a otros lenguajes, y es compatible con varios marcos y especificaciones principales en el ecosistema de microservicios. Es una plataforma de microservicios muy completa.

A través de Nacos, los usuarios pueden obtener capacidades relacionadas con microservicios de una manera más estándar y completa: descubrimiento de servicios, gestión de configuración, enrutamiento de servicios, etc. Por eso Nacos se ha convertido en la plataforma estándar de los microservicios de Alibaba

Almacén Ecológico: https://github.com/nacos-group

inserte la descripción de la imagen aquí


Diseño general Nacos

Para mejorar la solidez y la escalabilidad del código, diseño completamente modularizado y en capas

Criterios de diseño

 El principio del minimalismo, lo simple es fácil de usar, lo simple es estable y lo simple es fácil de colaborar.

 Consistencia de la arquitectura, un conjunto de arquitectura debe poder adaptarse a tres escenarios: código abierto, interno y comercial (nube pública y nube privada).

 Escalabilidad, con código abierto como núcleo y comercialización como base, totalmente expandible y conveniente para que los usuarios se expandan.

 Modularización, reduciendo la abstracción de partes comunes, mejorando la reutilización y robustez del código.

 El largoplacismo no requiere una estructura que pueda soportar los próximos 3 años, sino una estructura que pueda soportar 10 años.

 La apertura, el diseño y la discusión mantienen la interacción y la transparencia de la comunidad, lo cual es conveniente para que todos colaboren


diagrama de arquitectura

La arquitectura general se divide en capa de usuario, capa empresarial, capa de kernel y complementos.

  • La capa de usuario resuelve principalmente el problema de usabilidad para los usuarios.
  • La capa empresarial resuelve principalmente los problemas funcionales del descubrimiento de servicios y la gestión de la configuración.
  • La capa del kernel resuelve problemas centrales como la consistencia, el almacenamiento y la alta disponibilidad de los sistemas distribuidos.
  • Los complementos resuelven problemas de escalabilidad

inserte la descripción de la imagen aquí


capa de usuario

 OpenAPI: exponga la interfaz HTTP de estilo Rest estándar, fácil de usar y conveniente para la integración en varios idiomas.

 Consola: consola fácil de usar para operaciones como la gestión de servicios y la gestión de configuración.

 SDK: SDK multilingüe, actualmente es compatible con casi todos los lenguajes de programación principales.

 Agente: Opera en modo Sidecar y está desacoplado de los servicios a través del protocolo DNS estándar.

 CLI: la línea de comando realiza una administración ligera de productos, que es tan fácil de usar como git.


Capa empresarial

 Gestión de servicios: Realice funciones como servicio CRUD, nombre de dominio CRUD, comprobación del estado de salud del servicio y gestión del peso del servicio.
 Gestión de la configuración: Realice funciones como la gestión de la configuración CRUD, la gestión de versiones, la gestión de escala de grises, la gestión de la supervisión, el envío de seguimiento y los datos agregados.
 Gestión de metadatos: proporciona capacidades de marcado y CURD de metadatos, que son fundamentales para realizar el tráfico de capa superior y la escala de grises del servicio.


capa de kernel

 Mecanismo de complemento: realice la capacidad de separar y combinar los tres módulos, y realice el mecanismo SPI del punto de extensión, que se utiliza para expandir la personalización de la empresa.

 Mecanismo de eventos: Realice la notificación de eventos asíncronos, la notificación asíncrona de cambio de datos SDK y otra lógica, que es una parte clave del alto rendimiento de Nacos.

 Módulo de registro: administre la clasificación del registro, el nivel del registro, la portabilidad del registro (especialmente para evitar conflictos), el formato del registro, el código de excepción y el documento de ayuda.

 Mecanismo de devolución de llamada: el SDK notifica los datos y vuelve a llamar al usuario para su procesamiento a través de un modo unificado. Las interfaces y las estructuras de datos deben ser extensibles.

 Modo de direccionamiento: resuelva varios modos de direccionamiento, como la conexión directa de IP del servidor, el acceso al nombre de dominio, el direccionamiento del servidor de nombres y la transmisión, etc., que deben ser escalables.

 Canal de inserción: resuelva el problema de la comunicación eficiente entre el servidor y el almacenamiento, entre los servidores y entre el servidor y el SDK.

 Administración de la capacidad: administre la capacidad de cada arrendatario y grupo para evitar que el almacenamiento se sobrescriba y afecte la disponibilidad del servicio.

 Gestión del tráfico: según múltiples dimensiones, como inquilinos y grupos, se controlan la frecuencia de las solicitudes, la cantidad de enlaces largos, el tamaño del paquete y el control del flujo de solicitudes.

 Mecanismo de caché: el directorio de recuperación ante desastres, el caché local y el mecanismo de caché del servidor son la clave para la alta disponibilidad de Nacos.

 Modo de inicio: inicie diferentes módulos según el modo independiente, el modo de configuración, el modo de servicio y el modo DNS.

 Protocolo de consistencia: para resolver diferentes datos y diferentes requisitos de consistencia, los diferentes requisitos de consistencia son la clave para que Nacos logre el protocolo AP.

 Módulo de almacenamiento: resuelva la persistencia de datos, el almacenamiento no persistente y resuelva problemas de fragmentación de datos.


enchufar

 Servidor de nombres: resuelva el problema de enrutamiento del espacio de nombres a ClusterID y resuelva el problema de asignación entre el entorno del usuario y el entorno físico de Nacos.

 CMDB: resuelva el problema del almacenamiento de metadatos, acoplando con el sistema CMDB de tres partes y resuelva la relación entre aplicaciones, personas y recursos.

 Métricas: exponga datos de métricas estándar, lo cual es conveniente para conectarse con sistemas de monitoreo de terceros.

 Seguimiento: expone el seguimiento estándar, que es conveniente para conectarse con el sistema SLA, aplanar registros, enviar seguimientos y otras capacidades, y se puede conectar con el sistema de medición y facturación.

 Gestión de acceso: Es equivalente al proceso de apertura de servicios en Alibaba Cloud y asignación de identidades, capacidades y permisos.

 Gestión de usuarios: resuelva la gestión de usuarios, inicio de sesión, SSO y otros problemas.

 Gestión de derechos: resuelva problemas como la identificación, el control de acceso y la gestión de roles.

 Sistema de auditoría: la interfaz de expansión es conveniente para conectarse con los sistemas de auditoría de diferentes empresas.

 Sistema de notificación: Para cambios u operaciones de datos básicos, es conveniente pasar por el sistema de SMS y notificar a la persona correspondiente de los cambios de datos.


resumen

Nacos adopta la popular arquitectura de microservicios y su arquitectura general es la siguiente:

  • Centro de registro de servicios: responsable del registro y descubrimiento de servicios. El proveedor de servicios registra el servicio y el consumidor del servicio descubre y consume el servicio desde el centro de registro.
  • Centro de configuración: Archivos de configuración para la gestión centralizada de aplicaciones. Las aplicaciones pueden extraer configuraciones del centro de configuración y actualizarlas dinámicamente.
  • Detección de servicios: los consumidores de servicios obtienen una lista de proveedores de servicios del registro y pueden actualizarla dinámicamente.
  • Gestión de la configuración: las aplicaciones pueden obtener configuraciones del centro de configuración y actualizarlas dinámicamente.
  • Enrutamiento de servicios dinámicos: con el registro de servicios y el descubrimiento de servicios, Nacos puede implementar actualizaciones de configuración y enrutamiento dinámicos.
  • Llamada de servicio: los consumidores pueden llamar a los proveedores de servicios a través de RestTemplate y otros métodos.
  • Escalado elástico: el número de proveedores de servicios se puede ajustar dinámicamente según la carga.
  • Equilibrio de carga: el equilibrio de carga distribuye las solicitudes entre varios proveedores de servicios.
  • Tolerancia a fallas y disyuntor: para lograr una alta disponibilidad y tolerancia a fallas de los servicios.
  • DNS dinámico: asigne servicios al proveedor de servicios más reciente para lograr una conmutación por error rápida y actualizaciones sin tiempo de inactividad.
  • Peso del servicio: puede establecer el peso del servicio y distribuir el tráfico de acuerdo con la relación de peso.
  • Agregación de servicios: la agregación de varios microservicios en un servicio general se proporciona de forma externa.

Lo anterior es la estructura general y funciones principales de Nacos. Como marco de microservicios, Nacos incluye varias funciones de gobierno de microservicios, que pueden respaldar de manera efectiva las aplicaciones de microservicios.

inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/yangshangwei/article/details/131100207
Recomendado
Clasificación