Para construir micro-servicios seguros y fiables | Nacos aplicación práctica en Yen plataforma SaaS tienda

1.jpeg

Autor | tienda de Yin Yan Ming arquitecto de tecnología

Este papel de acabado arquitecto del crecimiento de serie en vivo de marzo de 19 cursos.
Preocupación "Alibaba nube nativo" número público, la respuesta  , "319" , se puede obtener el enlace correspondiente y reproducir en vivo enlace de descarga PPT.

REVISIÓN: la tecnología tienda de Yan debido a que la industria estadounidense ⽽ ⽣, "taller de expertos Yan" es una diseñado para la industria de Estados Unidos para construir la plataforma SaaS de negocios, con el fin de proporcionar un entorno más seguro, estable y eficiente plataforma para las empresas, hacemos mucho en términos de tecnología intentar varias veces a través de la evolución, de manera que el sistema se vuelve más estable y fiable. El grueso con ustedes hoy y tienda Yan evolución de la arquitectura de la ciencia y la tecnología, así como la práctica tienda de aplicaciones de Nacos Yen.

Monómero era de aplicación

2.png

La figura es un diagrama de la arquitectura de nuestro servicio de monómero, miembros divididos, órdenes, tiendas y muchos otros módulos, véase gráfico parecía bastante clara, pero en realidad ver la estructura de paquetes cuando en realidad es la calva! Cambio de los códigos especiales dolor de cabeza. Varios desafíos monómeros servicios:

  • ciclo de liberación lenta: Mientras que el volumen de negocio no era grande, pero una gran cantidad de código, negocio iterativo de hecho afecta a todo el cuerpo, cada versión volver a compilar toda la implementación del Service Pack. Sobre todo al principio cuando no hay herramientas de construcción, el proceso requiere la publicación de un montón de comandos, siempre hay una "comida operar feroz como un tigre, un lugar vistazo más de cerca maja"  sentimiento.

  • Bajo coeficiente: conflictos múltiples de combinación, a veces feliz código escrito en el frente, mientras que otros en la resolución del conflicto, también se pueden eliminar felizmente con su código, añade una gran cantidad de costos de comunicación.

  • la estabilidad pobres: Cuando un fallo en el servicio, puede provocar a todo el sistema no está disponible, y el sistema no es fácil expansión, cuando la promoción de negocios, puede terminar actividades, la expansión del servidor no se ha completado.

  • Bajo rendimiento: debido a que en los servicios de monómero, algunos desarrolladores con el fin de satisfacer su propio negocio, entre muchos contingencia negocio consulta de tabla de SQL sin relación, y no se preocupa por los problemas de rendimiento, lo que lleva a menudo aparecerá la advertencia de carga en línea. 

Además, también nos encontramos algunos retos en los negocios:

  • Transformación de negocio:  en junio de 2018, nuestra empresa decidió convertir a la industria estadounidense de la necesidad de la industria para crear un soporte técnico especializado para la industria estadounidense plataforma SaaS belleza de negocio.

  • capturar rápidamente el mercado: la transformación del negocio ha traído nuevas demandas para más negocio, si no la iteración rápida, significa estar fuera del mercado. Por lo tanto, para mejorar la eficiencia en el desarrollo, la cuota de mercado se convierten rápidamente en un problema que tenemos que resolver.

  • Comerciante mala experiencia: A medida que más y más empresas de ocupación, problemas de rendimiento y fiabilidad gradualmente problemas emergentes no se pueden corregir en el tiempo, la experiencia empresarial se vuelve muy pobre, al contrario de los primeros principios de nuestros clientes. 

En resumen, creemos que el servicio imprescindible transformación.

la reforma de la micro

Después de la empresa para desarrollar los estudiantes de discusión, finalmente decidimos transformar dos pasos:
el servicio de transformación objetivo 1.0:

  • Con un costo mínimo de actualización del primer viejos y nuevos negocios de plataforma abierta, por lo que la rápida migración de funcionalidad;
  • abstracción de negocios, las partes comunes del viejo y el nuevo centro de negocios de la lógica del código abstracto y optimizar el del viejo centro comercial, a allanar el camino para el negocio de la construcción posterior de Taiwán.

Servicio de transformación de destino 2.0: negocio de la construcción preliminar en Taiwán, por lo que las diversas capacidades de la plataforma de forma rápida reutilización, la combinación rápida, apoyan el negocio de exploración y desarrollo más eficiente.
transformación Servicio 1,0 efecto deseado:
3.png

  • Esperamos que el viejo centro de negocios en el mismo tiempo ofrecer servicios, sino también como un proveedor para proporcionar servicios de apoyo a la nueva centro de negocios;
  • El nuevo centro de negocios sólo proporcionan los servicios que no están conectados directamente a la capa de lógica de la base de datos, negocio sólo para la industria de la belleza especial para su procesamiento. 

Por lo que nuestra idea es: NUEVO Business Center llamando directamente a la interfaz expuesta viejo centro de negocios Controlador de llamada remota, por lo que decidimos probar a utilizar la nube de primavera.

 Descubrimiento de servicios de selección:
4.png

  • Cónsul encontró servicios simultáneos de apoyo, soporte de servicio de almacenamiento kv, porque queremos configurar un centro de almacenamiento de KV, así que quiero aprovechar Cónsul hacer un intento;
  • Salud servicio de salida es relativamente más detalle;
  • Durante nuestra selección, de repente apareció en Eureka 2.x dejar de proclamar el trabajo de código abierto de la noticia, aunque luego se descubrió que esto no tendrá mucho impacto en nosotros, pero en el momento de la toma de decisiones de manera que elegimos el Cónsul. 

Gráfico de transformación Servicio 1.0:
5.png

1.0 Servicio de nuestro programa de transformación son: el centro de negocios para registrar el antiguo cónsul anterior, el nuevo centro de negocios del cónsul para obtener la lista de servidores, una llamada remota por Feign, abrió la función de viejo y nuevo centro de negocios. 

Después de la transformación del servicio de 1.0, nos dirigimos a las siguientes cuestiones:

  • Rápidamente perfecta: Función viejo centro de negocios emigró rápidamente al nuevo centro de negocios y completar la adaptación de la industria de la belleza;
  • La iteración más rápido: Nuevo centro de negocios mayoría de las funciones se pueden modificar a través de la antigua compatibles centro de negocios, sentar las bases para la etapa subsiguiente de negocio abstracto;
  • La optimización del rendimiento: mientras que el desarrollo de negocios, se optimiza el rendimiento y la estabilidad se mejoraron en el viejo código heredado centro de negocios. 

Pero la transformación de servicio de 1,0, todavía hay algunos retos no se ha resuelto:

  • ciclo de lanzamiento todavía no es lo suficientemente rápido: la mayor parte del código sobre o en el centro de negocios, iteración negocio todavía afectan a la situación en su conjunto;
  • la eficiencia de colaboración no ha mejorado: en el conflicto de código, los altos costos de comunicación, sino que también aparecieron para hacer que el desarrollo de nuevas y viejas dolor de cabeza estudiante de negocios de los problemas de compatibilidad;
  • Los costos de mantenimiento: Cónsul lenguaje Go se desarrolla, fácil de mantener; Nube Primavera mala experiencia en el proceso de desarrollo, mientras que la escritura de negocios, sino también para explorar las mejores prácticas de la nube primavera, tomar algún tiempo para hacer la infraestructura de la nube de Primavera .

Así que decidimos abrir, orientado al servicio de reforma 2.0.
la transformación del servicio como se esperaba 2.0:
6.png

  • La finalización de la industria de la construcción inicial en Taiwán, el módulo de re-dividido, abstraído como servicio independiente;
  • Nuevos, servicios de centro comercial viejo para hacer sus negocios sólo son compatibles, y la exposición externa de la interfaz;
  • Nuevo soporte especializado H5, un pequeño programa de servicio web C-terminal. Nube de primavera debido a una mala experiencia, decidimos probar a utilizar el Dubbo RPC marco invocación remota transformación de los servicios 2.0 como base para el servicio, así que tenemos que estar en la selección del registro. 

En primer lugar, creo que el registro debe tener las funciones básicas:

  • el registro del servicio es la detección oportuna y oportuna la línea de montaje en el momento de anormal;
  • gestión de servicios, la capacidad de restaurar manualmente / Excluyendo servicios;
  • inspección sanitaria, servicio de prueba está disponible;
  • gestión de metadatos;
  • Registro de asegurar su disponibilidad.

7.png

Zookeeper:

  • No se puede garantizar que cada solicitudes de servicio son hasta cuando patrón de clúster ZK cuelgue, la necesidad de elecciones, durante el período electoral, el servicio no está disponible;
  • No es compatible con el enrutamiento a través del cuarto, como la zona de Eureka, la sala actual no está disponible, se pueden dirigir a otra habitación;
  • "Efecto manada tronar", el nodo ZK demasiado tiempo, cuando el nodo de servicio ha cambiado, se le notificará al cliente, el caudal instantáneo es posible jugó al instante la tarjeta, y el problema se repetirá notificaciones.

Nacos :

  • parte central de registro se centra más en la facilidad de uso
  • Servicio de localización y gestión de servicios
  • Servicio de gestión de metadatos
  • gestión de configuración dinámica

8.png

Mientras tanto, también están preocupados por la primavera nube de Alibaba. Alibaba tecnología para soportar la prueba de muchos años "doble 11", su rendimiento y la estabilidad es digno de confianza. Componente de la comunidad de código abierto activa un alto grado de primavera de la nube de Alibaba, y proyectos de código abierto con más facilidad que las divisas. Sus componentes por el desarrollo del lenguaje Java, para nosotros, más fácil de mantener, reparar puede localizar más rápidamente los problemas cuando surgen problemas. Y la nube con Ali, más fácil en la nube, como Nacos se puede utilizar con Ali nube de MSE y ACM, el registro y gestión de la configuración todo en una nube. 9.png

Así que decidimos abrazar la tecnología de pila Ali. 

Gráfico de transformación Servicio 2.0:

10.png

Vamos a ser bombeada directamente en el módulo previo a los servicios básicos, los nuevos miembros, órdenes, tiendas y otros servicios como el proveedor, la exposición de su servicio, registradas en Nacos. Los nuevos servicios de centro de negocios para hacer industria de procesamiento de la lógica de negocio en los Estados Unidos, el PAN de edad, servicios de centro de comerciante para que la industria de procesamiento de negocios, servicio del lado C Del mismo modo prestación de servicios. llamada remota a través de Dubbo. 

Transformación a través del servicio de 2,0, el efecto es el siguiente:

  • 30% de reducción en el costo del servidor: más de 20 servidores, con un 4 núcleo 16G 8G abajo núcleo a 2;
  • Mejorar la fiabilidad del sistema 80%: Alarma de carga se redujo significativamente, el problema se puede corregir rápidamente reparar la línea, el despliegue;
  • Código Violación reducción del 75%: porque el límite con su mantenimiento básico, una reducción significativa en el conflicto;
  • mejora de la eficiencia iteración permitida de 50%: 5 personas antes de cada evaluación de desarrollo iterativo para ser completado por 30 puntos, ahora para ser completada por alrededor de 45 puntos.

la práctica de aterrizaje nacos y análisis de problemas

Nacos fuera de nuestras manijas de la compañía hacen de registro, gestión de la configuración, también ofrecemos un servicio de buena. Debajo de eso, Nacos nuestro uso, y los problemas que nos encontramos. 

El primero es el uso de:

  • Despliegue: desarrollo / prueba de despliegue entorno autónomo, tres clústeres entorno de producción despliegue;
  • Versión: 0.9.0 entorno de producción iniciado desde el entorno de producción actual se utiliza la versión 1.1.4;
  • Tiempo: March 2019 comenzó a utilizar en un entorno de producción;
  • El número de servicio: 20 + servidor en línea, proporcionando un 600 + servicios;
  • Estabilidad: el plazo de un año sin mayores problemas, y una actualización sin problemas;
  • Compatibilidad: Servicios de viejos y nuevos, si se trata de Primavera trabaja en nuestra empresa 4.3+, o proyecto de Primavera de arranque es bueno compatibles. 

Registro nacos:

11.png

  • Servicio de Registro: La inscripción estará servicios de back-end a Nacos, llamados por Dubbo. Actualmente estamos probando entorno de desarrollo de SEAT, y también el servicio de SEAT registrado para Nacos;
  • Espacio de nombres: el servicio al público en el registro unificado. 

Gestión de la Configuración nacos:

12.png

Cada servicio configurado un espacio de nombres separado. 

  • Perfil de servicios de información: Application.properties toda la configuración a Nacos, perfiles de proyectos para retener única configuración Nacos;
  • KV configuración capa de servicio: Interruptor de tales servicios, el valor del atributo predeterminado, una tarea de temporización está configurado similares;
  • Configuración dinámica de MQ Tema: binlog recogidos transmite de forma dinámica a la información de tabla de servicio en el tema de configuración y necesidades Nacos;
  • Configuración gobierna Sentinel: Sentinel regla que limita persistió a Nacos.

Descripción del problema:

13.png

31 de de diciembre de 2019, en torno a 15:15, la aparición repentina de un gran número de alarmas de servicio en línea, se produce un error de servicio Dubbo, todo el proceso duró aproximadamente 3 minutos. día hábil de cada grupo no dio a conocer ningún estado base de datos también es bueno.

Al iniciar la sesión se encuentra un error porque el servicio no puede ser llamado el almacén. El registro de servicio de almacén, hay un período de tiempo de un problema, no hay registro de la llamada. Cuando el sistema vuelve a la normalidad, ha habido una gran cantidad de notificación de los servicios de registro.

Por lo tanto, se emitirá el objetivo Nacos. Ver Nacos se han encontrado registros en el proceso de recuperación del sistema, hay un gran número de servicios están en la línea.

 En el curso de la investigación, la línea de repente se presentó ante el mismo aviso, la lista de servicios en NACOS grandes cantidades se convierten en mal estado, por lo reiniciamos con urgencia la línea Nacos, durante el cual experimentó un 3 puntos después de más de un minuto llorar de nuevo para restablecer la calma. 

análisis:

  • Dos problemas se plantean son el servicio de tiendas, pero los problemas surgen durante la JVM y el estado de funcionamiento de la base de datos eran buenas;
  • Dubbo están llamando un mensaje de error de tiempo de espera, y se produce durante el problema, el servicio no almacena ningún tráfico para entrar;
  • El problema surge cuando el servicio registrado en Nacos poco saludable en grandes cantidades. Cuando volvió a la normalidad, estos servicios comenzaron en la línea, lo que indica un problema ocurre, el servicio es fuera de línea y de nuevo en línea.

 En resumen, empezamos a sospechar que la razón se debe a la red.

 Identificación del problema:

14.png

Tras la investigación, nos encontramos el servicio en su mayoría desplegados en la nube Ali disponibles 1 Distrito B East, sólo las tiendas y servicios de clúster Nacos disponible no está desplegado en la zona B, lo que indica la ocurrencia de aislamiento de la red entre los disponibles durante este tiempo la zona B y la otra zona.

Por lo tanto, nosotros en las tiendas B de área disponibles urgente la implementación de un servicio, entonces no hay problema vuelva a ocurrir.

Después de la comunicación con la confirmación de la nube Ali comenzó alrededor de Beijing a las 14:05 el 31 de diciembre de 2019 puntos, algunos usuarios de la red de realimentación sección B aliyun 1 Zona Este área excepción disponibles, afectar a algunos el acceso a recursos de la nube.

 Pregunta Replay:

  • Problema: más de 3 pm, alarma de servicio repente, de forma continua, se produce un error de servicio Dubbo;
  • Nacos: lista de nacos de servicios en un gran número de servicios estatales se ven poco saludable;
  • Sin red: la red disponible área de la Zona B con otra barrera, evitar la llamada de servicio;
  • Despliegue de emergencia: tienda de implementar el servicio en la zona B que faltan;
  • Volver a la normalidad.

 Pensando pregunta:

  • el despliegue de servicios: servicios de aplicaciones y Nacos propusieron el despliegue de varias habitaciones, incluso en la nube también deben tenerse en cuenta, entre el área disponible;
  • Recuperación de Desastres: Cuando se produce un problema, el área disponible B no desplegó Nacos, pero está disponible entre los servicios dentro de la región B todavía se puede sintonizar en y ser capaz de leer la configuración de Nacos. Por lo tanto, creemos Nacos Dubbo y estrategias de recuperación de desastres son dignos de confianza. 

Y Perspectivas:

15.png

"Compra de expertos Yan" a través de constantes iteraciones rápidas para ayudar a las empresas de la industria Avanzada eficiente y rápido para gestionar los almacenes y análisis de datos conducta comercial, tiendas de gestión de datos, la construcción de la atención inmediatamente mejorar el sistema de gestión del ciclo de miembros para las empresas de la industria de Estados Unidos en la operación y gestión, proporcionar ⼀ cuerpo de la solución, tradicional tienda de modelo de negocio de la industria de los Estados Unidos en ⾏ la mejora de Internet. Hasta ahora estamos sirviendo a un total de más de 3.000 marcas, 1.1W + a ⻔ tienda. Ofrecemos un sistema de gestión de compras, sistema de gestión de miembros, la extensión de la comercialización de los sistemas, los sistemas de toma de decisiones de grandes datos, sistemas de gestión de la cadena de suministro, sistema de gestión de rendimiento de los empleados 6 capacidades del sistema de zoom que también es compatible con el lado del PC, la, máquina de la posición, el funcionamiento del iPad de teléfono APP necesidades lleno-vacío ⻔ funcionamiento de la tienda de múltiples puertos para cubrir todas las necesidades de gestión empresarial ⻔ escena tienda.

La planificación futura

Mejorar la disponibilidad del sistema

  • De SEAT: transacción En la actualidad nuestra empresa distribuye depende de compensación MQ este año para preparar la introducción de de SEAT para mejorar las transacciones distribuidas para asegurar la consistencia de los datos, reducir la situación de desarrollo de datos de reparación;

  • Sentinel: Actualmente sólo se habilita cuando los comerciantes Sentinel haciendo actividades, por lo que tenemos que configurar las mejores prácticas aplicables a nuestra empresa, para asegurar la disponibilidad del sistema;

  • Completo enlace de seguimiento: Nuestra empresa se posiciona preguntas principalmente en los registros y las alarmas, no se puede hacer todo el eslabones de cadena, por lo que queremos hacer esta parte, por lo que la falta de localizar rápidamente cada análisis de rendimiento de enlace de llamada, y el análisis de datos;

  • Recuperación de desastres: Con más y más empresas de las provincias, que necesitan protección de datos para las empresas, para evitar la pérdida de datos, garantizar la fiabilidad del servicio. 

Retroalimentación de la comunidad

16.png

Debido a que nuestra compañía está concentrando poco que podemos hacer es usar la versión más reciente medida de lo posible, en el momento de probar nuevas características, problemas de planteo de los problemas identificados, sino que también quieren ser capaces de contribuir a nuestra comunidad de código abierto Nacos el poder.

Información del autor: Yin Ming, Yan arquitecto de tecnología tienda, responsable de la tienda de aplicaciones de Yen y la práctica SAAS middleware de plataforma, la arquitectura más avanzada plataforma distribuida a todo el proceso de la evolución, también es responsable de la práctica de la plataforma de datos grande en la tienda en Yen Yen Shop y el piso.

17.png

" Alibaba nube nativa preocupación servicio de micro, sin servidor, contenedor, Servicio de malla y otros campos técnicos, centrándose tendencias tecnológicas populares nativas nube, nube de la práctica de aterrizaje a gran escala nativa, la mayoría lo hace entender el número de nube pública de desarrolladores nativos".

Supongo que te gusta

Origin blog.51cto.com/13778063/2484198
Recomendado
Clasificación