Popular Science arquitectura distribuida

Esta serie de artículos Github Guía de back-end avanzada se ha incluido, este artículo es perfecto estrella de bienvenida.

1. arquitectura distribuida para solucionar cualquier problema

Los dos principales son:

  • Para manejar grandes flujos de

    Al agrupar la tecnología de balanceo de carga de solicitudes simultáneas a gran escala en diferentes máquinas.

  • crítica para el negocio de protección contra

    Antecedentes mejorar la disponibilidad del servicio, aislamiento de fallos para evitar un efecto dominó, si la cantidad de tráfico, la necesidad de una degradación del servicio. La clave ha sido asegurar el flujo de negocios.

Significa hacer dos cosas, una es para aumentar el rendimiento de la arquitectura general, la segunda es la mejora de la mayor estabilidad del sistema, la disponibilidad del sistema.

2. ¿Cómo mejorar el rendimiento de la infraestructura

  • Sistema de almacenamiento en caché
  • llamada asincrónica
  • Equilibrio de carga
  • partición de datos
  • duplicación de datos

3. ¿Cómo mejorar la estabilidad de la arquitectura

  • servicio de Split
  • servicio de redundancia
  • rebaja limitando
  • Arquitectura de alta disponibilidad
  • Funcionamiento de alta disponibilidad y mantenimiento

4. El núcleo de los sistemas distribuidos

img
img

El seguimiento de pila completa

img
img
  • capa de base: el seguimiento de acogida y los recursos subyacentes. Por ejemplo: CPU, memoria, rendimiento de la red, un O, el uso de disco duro I / disco y similares.
  • Capa media: es monitorear la capa de middleware. Por ejemplo: Nginx, Reids, ActiveMQ, Kafka, MySQL, Tomcat y así sucesivamente.
  • Capa de aplicación: supervisar el uso de la capa de aplicación. Por ejemplo: HTTP rendimiento de acceso, el tiempo de respuesta, código de retorno, el análisis de enlace de llamada, los cuellos de botella, la supervisión que comprende además terminal de usuario.

6. Gestión de Servicios

  • Resolver las dependencias entre los servicios (Zipkin)
  • Estado del servicio y la gestión del ciclo de vida del servicio (el descubrimiento de servicios)
  • gestión de versiones de esquema general (similar a la versión de la correspondencia entre Springboot y clound primavera)
  • Recursos / programación de servicios
  • El mantenimiento y ajuste de estado del servicio (que no esperan mantener los cambios de estado de servicio, tales como colgado espera que el servicio cambios en el servicio de estado se ajustan, como el inicio del servicio)
  • Elásticamente estirables servicios y failover (estibador, kubernetes)
  • Servicio de flujo de trabajo y la orquestación

7. Resumen

7.1 para construir sistemas distribuidos problemas que enfrentan las

  • Error de hardware de la alta incidencia de sistemas distribuidos. El fracaso es la norma, el funcionamiento y los procesos de mantenimiento necesita ser automatizado tanto como sea posible.
  • La necesidad de buenos servicios de diseño, para evitar un único punto de fallo causó grandes servicios de impacto en otros servicios dependen de ello.
  • Para la escalabilidad de capacidad, dividir, autogobierno y no estatales de servicios se vuelven más importantes, es posible que tenga que modificar la lógica de software antiguo más grande.
  • 老的服务可能是异构的,此时需要让他们使用标准的协议,以便可以被调度、编排、且互相之间可以通信。
  • 服务软件故障的处理也变得复杂,需要优化的流程,以加快故障的恢复。
  • 为了管理各个服务的容量,让分布式系统发挥出最佳性能,需要有流量调度技术。
  • 分布式存储会让事务处理变得复杂;在事务遇到故障无法被自动恢复的情况下,手动恢复流程也会变得复杂。
  • 测试和查错的复杂度增大。
  • 系统的吞吐量会变大,但响应时间会变长。

7.2 了解一些解决方案

  • 需要有完善的监控系统,以便对服务运行状态有全面的了解。
  • 设计服务时要分析其依赖链;当非关键服务故障时,其他服务要自动降级功能,避免调用该服务。
  • 重构老的软件,使其能被服务化;可以参考 SOA 和微服务的设计方式,目标是微服务化;使用 Docker 和 Kubernetes 来调度服务。
  • 为老的服务编写接口逻辑来使用标准协议,或在必要时重构老的服务以使得它们有这些功能。
  • 自动构建服务的依赖地图,并引入好的处理流程,让团队能以最快速度定位和恢复故障,详见《故障处理最佳实践:应对故障》一文。
  • 使用一个 API Gateway,它具备服务流向控制、流量控制和管理的功能。
  • 事务处理建议在存储层实现;根据业务需求,或者降级使用更简单、吞吐量更大的最终一致性方案,或者通过二阶段提交、Paxos、Raft、NWR 等方案之一,使用吞吐量小的强一致性方案。
  • 通过更真实地模拟生产环境,乃至在生产环境中做灰度发布,从而增加测试强度;同时做充分的单元测试和集成测试以发现和消除缺陷;最后,在服务故障发生时,相关的多个团队同时上线自查服务状态,以最快地定位故障原因。
  • 通过异步调用来减少对短响应时间的依赖;对关键服务提供专属硬件资源,并优化软件逻辑以缩短响应时间。

本系列文章Github 后端进阶指南 已收录,此项目正在完善中,欢迎star。

公众号内文章都是博主原创,并且会一直更新。如果你想见证或和博主一起成长,欢迎关注!

Supongo que te gusta

Origin juejin.im/post/5dee6b976fb9a015ff64de78
Recomendado
Clasificación