C++面试 -分布式架构-架构能力:剩余内容

目录

分布式Trace、监控告警

负载均衡

主流分布式系统架构设计

分布式系统的缓存设计

容灾保护、降级熔断、流量控制、故障隔离、故障恢复

分布式架构的高并发、高可用、可扩展


分布式Trace、监控告警

分布式Trace和监控告警是分布式系统中保障服务可观测性的关键技术。分布式Trace允许开发者追踪一个请求通过系统中各个微服务的完整路径,帮助定位延迟的根源和潜在的性能瓶颈。监控告警则是持续监视系统的健康状况,包括硬件状态、软件性能、业务指标等,并在发现异常时及时通知相关人员,确保可以迅速响应和处理问题。

负载均衡

负载均衡是分布式系统中分配网络或应用程序流量的技术,通过将入站流量平均分配到多个服务器上,它可以提高网站、应用程序和数据库的可用性和性能。负载均衡器可以基于不同的策略(如轮询、最少连接数、源IP哈希等)来分配请求,从而避免任何单一点的过载,确保系统的高可用性和伸缩性。

主流分布式系统架构设计

  • 分布式缓存:分布式缓存通过在多个节点上存储数据来提高数据检索的速度和效率,常见的实现有Redis和Memcached。它能显著减少对后端数据库的访问压力,提高系统响应速度。

  • API网关:API网关是面向微服务架构的入口点,它负责请求路由、组合和协议转换,以提供更加优化的客户端到各个微服务的通信。

  • 分布式消息组件:分布式消息系统(如Kafka、RabbitMQ)提供高效、可靠的消息传递机制,支持系统间的异步通信,解耦和扩展性。

分布式系统的缓存设计

分布式缓存设计关注于如何有效地在多个缓存节点上存储和检索数据,以及如何处理缓存失效的问题,包括:

  • 缓存雪崩:缓存同时大量过期,导致所有请求都落到数据库上,可能造成数据库瞬时压力过大而崩溃。
  • 缓存击穿:一个热点key突然失效,导致大量请求直接打到数据库上,可以通过设置热点数据永不过期或使用互斥锁来解决。
  • 缓存穿透:查询不存在的数据,导致请求直接访问数据库,可以通过布隆过滤器或缓存空结果来解决。

容灾保护、降级熔断、流量控制、故障隔离、故障恢复

这些都是分布式系统中保证服务稳定性和可靠性的策略:

  • 容灾保护:通过备份和多地部署等手段,确保系统在发生灾难时能快速恢复。
  • 降级熔断:当系统出现问题时,自动降级部分服务质量或功能,熔断机制则在服务调用链中某服务故障时,阻断该服务调用,防止故障扩散。
  • 流量控制:通过限制系统的入口流量,避免过载。
  • 故障隔离:将潜在的故障影响限制在最小范围内,比如使用微服务架构隔离服务,或使用容器和虚拟化技术隔离运行环境。
  • 故障恢复:快速恢复服务正常运行的能力,通常需要事先制定详细的故障恢复计划和自动化恢复流程。

分布式架构的高并发、高可用、可扩展

  • 高并发:通过负载均衡、缓存、异步处理等技术,支持同时处理大量请求。
  • 高可用:通过冗余部署、健康检查、自动故障转移等手段,确保系统的持续运行。
  • 可扩展:分布式系统设计时考虑水平扩展性,即通过增加更多的节点来提升系统整体的处理能力,而不是仅仅通过提高单个节点的性能。
相关推荐
银帅1833503097129 分钟前
2018年下半年试题四:论NoSQL数据库技术及其应用
数据库·架构·nosql
文火冰糖的硅基工坊1 小时前
《投资-107》价值投资者的认知升级与交易规则重构 - 上市公司的估值,估的不是当前的净资产的价值,而是未来持续赚钱的能力,估的是公司未来所有赚到钱的价值。
重构·架构·投资·投机
文火冰糖的硅基工坊1 小时前
《投资-99》价值投资者的认知升级与交易规则重构 - 什么是周期性股票?有哪些周期性股票?不同周期性股票的周期多少?周期性股票的买入和卖出的特点?
大数据·人工智能·重构·架构·投资·投机
一水鉴天1 小时前
整体设计 逻辑系统程序 之18 Source 容器(Docker)承载 C/P/D 三式的完整设计与双闭环验证 之2
docker·架构·认知科学·公共逻辑
芒果茶叶2 小时前
并行SSR,SSR并行加载
前端·javascript·架构
失散132 小时前
分布式专题——33 一台新机器进行Web页面请求的历程
分布式·tcp/ip·http·路由器·交换机
数据智能老司机2 小时前
数据工程设计模式——冷热数据存储
大数据·设计模式·架构
道可到2 小时前
百度面试真题 Java 面试通关笔记 04 |JMM 与 Happens-Before并发正确性的基石(面试可复述版)
java·后端·面试
bot5556663 小时前
“企业微信iPad协议”静默 72 小时:一台被遗忘的测试机如何成为私域的逃生梯
javascript·面试
火星MARK3 小时前
k8s面试题
容器·面试·kubernetes