【分布式技术专题】「架构实践于案例分析」盘点一下分布式模式下的服务治理和监控优化方案

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
简介: 【分布式技术专题】「架构实践于案例分析」盘点一下分布式模式下的服务治理和监控优化方案

什么是服务治理?


相信每一个软件公司(企业)都希望可以确保开发及项目运行流程可以顺利,但是如果要完美完结那么需要其中会有很多的因素存在。包括,最佳实践架构原则服务治理以及其他决定性的因素。而其中服务治理指的是⽤来管理SOA(微服务)所采⽤和实现的重要环节和因素。下图就算是一个较为完整得RPC模型得服务治理体系机制。

image.png



典型的问题


  • 变更管理变更⼀个服务通常会引起不可预⻅的后果,因为服务的消费者对服务的提供者来说是不可知的


  • 服务质量的保证弹性添加新服务需要对这些服务给予额外的关注




分布式应⽤的治理


服务注册与发现


单体服务拆分为微服务,如果微服务之间存在调⽤依赖,就需要得到⽬标服务的服务地址,也就是微服务治理的”服务发现“。要完成服务发现,就需要将服务信息存储到某个载体(实例),载体本身是微服务治理的”服务注册中⼼“,存储到载体的动作即是”服务注册“。

image.png



服务得可观测性


微服务由于较单体应⽤有了更多的部署实例,需要对众多服务间的调⽤关系、状态有清晰的掌控

可观测性就包括了调⽤拓扑关系、监控(Metrics)、⽇志(Logging)、调⽤追踪(Trace)等,所下图所示,可以通过采用中心进行流量控制得限流控制能力。

image.png



服务流量管控


微服务本身存在不同版本,在版本迭代得过程中,需要对微服务间调⽤进⾏控制,以完成微服务版本更迭的平滑


流量管控主要是根据流量的特征(访问参数等)百分⽐向不同版本服务分发,这也孵化出灰度发布蓝绿发布A/B测试等服务治理的主题,


面向的统计流量范围,主要包含请求打进来的流量管理和微服务之间的流量管理



服务安全控制


服务的安全控制主要分为:服务的安全和服务的控制两个部分。



服务安全


不同微服务承载⾃身独有的业务职责,对于业务敏感的微服务,需要对其他服务的访问进⾏认证与鉴权,也就是安全问题


服务控制


当服务治理能⼒充分建设后,就需要有⾜够的控制能⼒,能实时进⾏服务治理策略向微服务分发,包含服务的降级和熔断能力的额控制等




服务监控


监控的可视化


监控的可视化,随时了解系统运⾏情况帮助我们快速定位问题。

image.png

  1. 通过数据采样分析进行分析对应得上报数据从而帮助我们快速定位问题。
  2. 通过上报数据的信息,进行多维度的指标计算,方便我们时时刻刻的进行分析系统服务,打造全方位的监控体系。



监控维度


在我们日常的实际项⽬中,我们实现了四种维度的监控。


容器实例级别的监控


针对于使用的容器服务,例如:Docker、Podman或者moby服务,k8s的pod(单pod只管理一个容器)级别,那么我们监控的就是容器内部的服务级别,可以理解为实例级别,例如下图我们的crm容器实例,下面每一个容器都是一个监控对象

image.png

针对于SpringBoot的应⽤,我们一般处了专门的监控服务,例如,夜莺、Zabbix和Promethus等,还可以参考SpringBoot-Admin,⾃⼰实现了⼀套监控界⾯,监控Spring Boot应⽤。




主要指标




应⽤实例级别的监控


针对于应用级别的服务实例监控,例如我们有crm服务系统,那么如果我们集群部署、分布式部署等方式,那么会针对于将应用的整体,下图就是整体的应用体系作为一个指标对象,它的指标对象监控维度就是将所有的内部的容器实例监控指标合并。

image.png

  • Prometheus(github.com/prometheus/… 当然Prometheus不仅能监控容器,还能监控数据库、操作系统,甚⾄可以和Spring Boot集成,但⽬前业界主要⽤来监控容器。


系统级的监控


调⽤链监控




⽇志监控及优化


  • Skywalking快速找到性能瓶颈
  • ELK分析⽇志快速找到问题


JVM监控及调优工具推荐




中间件级别监控


Zabbix监控是一个老牌劲旅了。


Redis监控



Kafka监控



MySQL




相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
相关文章
|
17天前
|
存储 SQL 关系型数据库
Mysql高可用架构方案
本文阐述了Mysql高可用架构方案,介绍了 主从模式,MHA模式,MMM模式,MGR模式 方案的实现方式,没有哪个方案是完美的,开发人员在选择何种方案应用到项目中也没有标准答案,合适的才是最好的。
85 3
Mysql高可用架构方案
|
7天前
|
消息中间件 存储 缓存
十万订单每秒热点数据架构优化实践深度解析
【11月更文挑战第20天】随着互联网技术的飞速发展,电子商务平台在高峰时段需要处理海量订单,这对系统的性能、稳定性和扩展性提出了极高的要求。尤其是在“双十一”、“618”等大型促销活动中,每秒需要处理数万甚至数十万笔订单,这对系统的热点数据处理能力构成了严峻挑战。本文将深入探讨如何优化架构以应对每秒十万订单级别的热点数据处理,从历史背景、功能点、业务场景、底层原理以及使用Java模拟示例等多个维度进行剖析。
28 8
|
13天前
|
监控
SMoA: 基于稀疏混合架构的大语言模型协同优化框架
通过引入稀疏化和角色多样性,SMoA为大语言模型多代理系统的发展开辟了新的方向。
28 6
SMoA: 基于稀疏混合架构的大语言模型协同优化框架
|
19天前
|
缓存 关系型数据库 MySQL
高并发架构系列:数据库主从同步的 3 种方案
本文详解高并发场景下数据库主从同步的三种解决方案:数据主从同步、数据库半同步复制、数据库中间件同步和缓存记录写key同步,旨在帮助解决数据一致性问题。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
高并发架构系列:数据库主从同步的 3 种方案
|
11天前
|
存储 NoSQL 分布式数据库
微服务架构下的数据库设计与优化策略####
本文深入探讨了在微服务架构下,如何进行高效的数据库设计与优化,以确保系统的可扩展性、低延迟与高并发处理能力。不同于传统单一数据库模式,微服务架构要求更细粒度的服务划分,这对数据库设计提出了新的挑战。本文将从数据库分片、复制、事务管理及性能调优等方面阐述最佳实践,旨在为开发者提供一套系统性的解决方案框架。 ####
|
20天前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
58 1
|
30天前
|
监控 API 开发者
后端开发中的微服务架构实践与优化
【10月更文挑战第17天】 本文深入探讨了微服务架构在后端开发中的应用及其优化策略。通过分析微服务的核心理念、设计原则及实际案例,揭示了如何构建高效、可扩展的微服务系统。文章强调了微服务架构对于提升系统灵活性、降低耦合度的重要性,并提供了实用的优化建议,帮助开发者更好地应对复杂业务场景下的挑战。
22 7
|
26天前
|
程序员
后端|一个分布式锁「失效」的案例分析
小猿最近很苦恼:明明加了分布式锁,为什么并发还是会出问题呢?
31 2
|
1月前
|
存储 缓存 NoSQL
分布式架构下 Session 共享的方案
【10月更文挑战第15天】在实际应用中,需要根据具体的业务需求、系统架构和性能要求等因素,选择合适的 Session 共享方案。同时,还需要不断地进行优化和调整,以确保系统的稳定性和可靠性。
|
1月前
|
Cloud Native API 持续交付
利用云原生技术优化微服务架构
【10月更文挑战第13天】云原生技术通过容器化、动态编排、服务网格和声明式API,优化了微服务架构的可伸缩性、可靠性和灵活性。本文介绍了云原生技术的核心概念、优势及实施步骤,探讨了其在自动扩展、CI/CD、服务发现和弹性设计等方面的应用,并提供了实战技巧。
下一篇
无影云桌面