Hablar sobre la comprensión de los microservicios

Introducción

El auge de los microservicios ha existido durante muchos años, y en los últimos años ha alcanzado una etapa de gran desarrollo. La compañía ha hecho muchas cosas relacionadas con los microservicios, y también he leído contenido relacionado con los microservicios. Ahora conozcamos de nuevo las tres palabras "microservicios", y finalmente me siento un poco comprendido.

Lo que he visto durante mi estudio

  1. Diseño de microservicios
  2. La piedra angular del almacenamiento distribuido nativo en la nube: análisis en profundidad de etcd
  3. Introducción a la tecnología Docker y combate real
  4. Juega a Kubernetes en 5 minutos al día
  5. Escucha el viento
  6. Aprenda microservicios de 0

Razón

¿Por qué aparecen los microservicios? Creo que este es el resultado inevitable del desarrollo de Internet.

Al igual que cuando antes no existía el modelo de siete capas de IOS, cuando los programadores programaban, tenían que hacer lo que el modelo de siete capas hacía por sí mismos. Cada programador tenía que hacer esto, lo que provocaba una gran pérdida de recursos, y todos lo hacían. El efecto es difícil de decir perfecto. Luego apareció el modelo de siete capas de IOS. Una especificación unificada ayudó a los programadores a completar tareas repetitivas, lo que mejoró enormemente la eficiencia del desarrollo.

Desde este punto de vista, los microservicios hacen lo mismo.

Después de décadas de desarrollo de Internet, la empresa principal es enorme y encuentra muchos problemas, y todas las empresas pueden encontrar estos problemas. En muchas cosas, todo el mundo está reinventando la rueda, y en muchos casos puede que no sea muy buena. Sobre la base de absorber buenas prácticas, los expertos combinaron su amplio conocimiento para promover el desarrollo de microservicios.

En la actualidad, es difícil formar un estándar unificado para los microservicios. Primero, desde la perspectiva de toda la etapa de desarrollo, aún se encuentra en la etapa inicial y no hay una gran cantidad de talentos de microservicios relevantes. En segundo lugar, las condiciones comerciales propias de cada empresa son diferentes y es difícil unificar completamente. Sin embargo, los microservicios se han convertido en realidad en un incendio de la pradera. En un futuro cercano, puede ser más fácil iniciar una empresa de Internet. Los microservicios serán como TCP / IP, que es completamente transparente para los desarrolladores. Los desarrolladores solo necesitan Solo enfóquese en el desarrollo de la lógica empresarial Por supuesto, la premisa es que las palabras del programador son necesarias para desarrollarse hasta esta etapa.

El desarrollo de una plataforma de microservicios tan universal también es una muy buena dirección empresarial.

Por lo tanto, como programador contemporáneo, el aprendizaje de microservicios sigue siendo necesario, una tendencia inevitable que también puede aumentar su propia competitividad. Si algún día, los microservicios son tan transparentes como TCP / IP, las personas que entienden los principios básicos de los microservicios seguirán siendo más valiosas. Después de todo, solo estas personas pueden resolver algunos problemas mágicos en ese momento.

sistema

El agua de los microservicios es bastante profunda, para ser precisos, no solo profunda sino también muy amplia. Los microservicios involucran mucho contenido, y cada área se puede estudiar en profundidad para convertirse en un experto en esta área.

En el libro "Diseño de microservicios", los microservicios se definen como: los microservicios son servicios pequeños y autónomos que trabajan juntos.

Esta definición no es particularmente buena, siempre se siente que reduce el alcance de los microservicios.

Además, la brecha en la comprensión de esta oración es bastante grande. Recuerdo que antes tenía un sistema de comentarios. El servicio de comentarios, el backend de comentarios, la base de datos, la caché, etc. se implementaron de forma independiente. En ese momento, pensé que este sistema de comentarios era un microservicio. Esto no es 100% incorrecto, pero ciertamente no es correcto.

Dado que los microservicios describen un conjunto completo de sistemas, un único servicio independiente solo representa una pequeña parte de los microservicios.

Los microservicios se componen principalmente de 6 partes

  1. Descripción del servicio

    La documentación para servicios similares es simple pero indispensable. Por ejemplo, el primer problema a resolver para la invocación del servicio es cómo describir el servicio. Por ejemplo, si proporciona un servicio de forma externa, ¿cuál es el nombre del servicio de este servicio? ¿Qué información se requiere para llamar a este servicio? ¿Qué formato devuelve el resultado al llamar a este servicio? ¿Como resolverlo? Estos son los problemas que debe resolver la descripción del servicio.

  2. Registro

    Con la descripción de la interfaz de servicio, el siguiente problema a resolver es la publicación y suscripción del servicio, es decir, usted proporciona un servicio (Proveedor), cómo informar a las personas externas (Consumidores) que quieren llamar a su servicio. En este momento, se requiere una función similar a un registro. El proveedor de servicios registra el servicio y la dirección proporcionados por el registro en el registro, y el consumidor del servicio consulta la dirección del servicio que se llamará desde el registro y luego inicia una solicitud.

  3. Marco de servicio

    A través del centro de registro, los consumidores de servicios pueden obtener la dirección del proveedor de servicios y, después de tener la dirección, pueden iniciar una llamada. Pero aún debe resolver los siguientes problemas antes de realizar la llamada. ¿Qué protocolo se utiliza para la comunicación de servicios? ¿Es una API RESTful o gRPC? ¿Cuál es el método de transmisión de datos? ¿Qué formato se utiliza para la compresión de datos? Estas actividades suelen estar integradas en nuestro marco de servicios. Existen muchos marcos de código abierto de este tipo en el mercado , que son relativamente maduros. La siguiente prueba es su capacidad para comenzar rápidamente.

  4. Monitoreo de servicio

    Una vez que se puede iniciar una llamada de servicio entre el consumidor del servicio y el proveedor del servicio, debe monitorear la llamada para ver si el servicio es normal. En términos generales, la supervisión del servicio incluye principalmente tres procesos: recopilación de indicadores, procesamiento de datos y visualización de datos. El seguimiento sirve para descubrir problemas y anomalías. Si desea seguir un seguimiento y localizar problemas, debe aprender más sobre el seguimiento del servicio.

  5. Seguimiento de servicios

    Además de monitorear la invocación del servicio, también necesita registrar cada capa de enlaces por la que pasa la invocación del servicio para rastrear y localizar fallas, y finalmente lograr el objetivo de abordar el problema. La supervisión y el seguimiento del servicio se pueden combinar, pero debe quedar claro que sus respectivas responsabilidades son diferentes.

  6. Gobernanza del servicio

    La supervisión del servicio puede encontrar problemas, el seguimiento del servicio puede localizar problemas y la resolución de problemas depende del gobierno del servicio. La gobernanza del servicio consiste en utilizar una serie de métodos para garantizar que las llamadas de servicio aún se puedan realizar con normalidad en diversas situaciones inesperadas. En lo que respecta a los marcos de servicios de código abierto actuales, la mayoría de ellos no incluyen el contenido de la gobernanza del servicio, por lo que es posible que esta parte requiera que usted y su equipo realicen un desarrollo personalizado, dependiendo de qué tan bien lo logre. Es como si tuviera una base de datos pero La ausencia de una descripción del diagrama ER no afecta su uso de microservicios. Por supuesto, si la hay, será la guinda del pastel.

La combinación de estas 6 partes se denomina microservicio. El siguiente enlace es un mapa mental que hice. No he aprendido completamente parte del contenido del mapa. Lo organizaré más adelante. Si te gusta, puedes recordar este enlace primero.

https://www.processon.com/view/link/5f3952a17d9c0806d41a90a9

Inserte la descripción de la imagen aquí

Ruta de aprendizaje

Los microservicios pueden considerarse un maestro de la tecnología moderna de Internet. Soy un principiante y necesito establecer un camino de aprendizaje para mí mismo para poder dominar mejor el contenido.

Para la ruta de aprendizaje, creo que hay varios principios:

  1. Descubra qué aprender y tomar notas
    • He leído muchos artículos o libros antes, pero no he escrito el contenido. Siempre siento que he aprendido relativamente superficialmente. Después de digerir el contenido y escribirlo, puedo profundizar mi impresión.
    • El contenido que se debe aprender debe ser el contenido central, como k8s, docker, distribuido, etc. Se debe aprender al 100%
  2. No hay necesidad de aprender
    • Existen múltiples opciones técnicas para el mismo programa, solo aprenda una. Por ejemplo, la orquestación de servicios solo necesita considerar k8s, porque esto ya es un estándar de la industria. El seguimiento del servicio puede elegir uno de zipkin y skywalking
    • Algunos contenidos están particularmente sesgados hacia el nivel de operación y mantenimiento, que pueden entenderse un poco o nada.
  3. Actualiza y enriquece continuamente el mapa mental
  4. Durante el proceso de aprendizaje, se necesita práctica para finalmente construir microservicios básicos.

El contenido de aprendizaje y reaprendizaje planificado actualmente es

  1. k8s
  2. estibador
  3. Etcd
  4. GRPC
  5. Netty
  6. Dubbo
  7. ALCE
  8. Grafana
  9. Kafka
  10. Skywalking
  11. Apolo
  12. Mismo

De hecho, además de estos, los microservicios todavía tienen mucho otro contenido que aprender, que se puede agregar gradualmente en el futuro.

datos

  1. Hoja de ruta de la arquitectura de aprendizaje de microservicios (borrador preliminar)

  2. Navegación de aprendizaje de microservicios

  3. [Uso compartido de productos secos] Probablemente el recurso de aprendizaje de microservicios multiplataforma de .NET Core más completo del hemisferio oriental

Al final

Si te gusta mi artículo, puedes seguir mi cuenta pública (Programador Mala Tang)

Revisión de artículos anteriores:

tecnología

  1. Hablando de microservicios
  2. Optimización del rendimiento de TCP
  3. Realización del límite de corriente 1
  4. Redis implementa bloqueos distribuidos
  5. Seguimiento de errores del código fuente de Golang
  6. El principio de realización de la atomicidad, consistencia y durabilidad de las transacciones
  7. Explicación detallada del proceso de solicitud de CDN
  8. La historia del servicio de blogs siendo aplastado
  9. Técnicas comunes de almacenamiento en caché
  10. Cómo conectarse de manera eficiente con pagos de terceros
  11. Versión concisa del marco de gin
  12. Un breve análisis de los bloqueos y transacciones de InnoDB

leyendo notas

  1. Cómo ejercitar tu memoria
  2. Lógica simple después de la lectura
  3. Aire caliente después de la lectura
  4. Las analectas-pensamientos después de leer

Pensando

  1. Algunas opiniones sobre la gestión de proyectos
  2. Algunas reflexiones sobre los gerentes de producto
  3. Reflexiones sobre el desarrollo profesional de los programadores
  4. Pensando en la revisión del código
  5. Recomendación del editor de Markdown-typora

Supongo que te gusta

Origin blog.csdn.net/shida219/article/details/108055953
Recomendado
Clasificación