【微服务】面试 3、 服务监控 SkyWalking

微服务监控的原因

在这里插入图片描述

  • 问题定位:在微服务架构中,客户端(如 PC 端、APP 端、小程序等)请求后台服务需经过网关再路由到各个微服务,服务间可能存在多链路调用。当某一微服务挂掉时,在复杂的调用链路中难以迅速确定是哪个微服务出现问题。例如,PC 端查询数据可能经过网关、多个微服务最终到数据库,若其中服务 K 挂掉,很难直接定位到它。
  • 性能分析:若服务链路中某个接口响应时间较长(如超过两秒),由于涉及多个微服务,很难快速判断是哪个服务的接口导致的性能问题。比如,在一个链路中,服务 H、服务 K 到 MySQL 的调用过程中,如果接口响应慢,难以确定是服务 K 等哪个环节出现问题。
  • 服务关系:微服务之间可能会进行远程调用,在项目规模较小时,人工或许还能理清服务间的关系,但当项目足够大,微服务数量达到上百个甚至上千个时,靠人工维护服务之间的调用关系就变得不现实。例如,服务 A 调用服务 G、H,服务 H 又调用服务 K,服务 D 也调用服务 K 等复杂关系,大规模项目中难以人工梳理。
  • 服务告警:当服务链路出现问题时,需要能够及时知晓是哪个服务出现问题,以便快速响应和处理,这就需要有相应的告警机制。比如服务 K 出现问题时,应能迅速得到通知。

常见服务监控工具

  • Spring Boot - admin:可监控普通微服务的状态信息,但功能相对单一,在实际应用中较少采用。
  • Prometheus + Grafana:是比较全面且功能强大的监控工具,但存在搭建过程复杂的问题。
  • Zipkin:作为 Spring Cloud 推荐的链路追踪工具,其与代码存在耦合关系,因此不再使用。
  • SkyWalking:是一个分布式系统的应用程序性能监测工具(APM 工具),具有完善的链路追踪能力。在一些项目中会直接采用它进行监控。

SkyWalking 基础概念

在这里插入图片描述

  • 服务(Service):每个微服务都可看作一个服务,如 user-serviceorder-service 等,网关也属于服务范畴。
  • 端点(End point):指服务对外暴露的功能接口,例如 api/user/login 等接口就是端点,是服务与外部交互的关键部位。
  • 实例(Instance):也称为物理机,一个微服务部署到不同的服务器上就会产生不同的实例,如 user service 部署到 200.100 和 101 等不同 IP 的服务器上,这些就是不同的实例,数据库也可看作一个实例。

SkyWalking 功能演示

在这里插入图片描述

  • 仪表盘(Dashboard)

    • 展示已集成 SkyWalking 的微服务信息,如黑马 news app 网关、article、user 等微服务。
    • 呈现慢服务、不健康服务及慢接口排名,例如文章服务可能在慢服务和慢接口排名中较为靠前,通过这些信息可快速定位出性能较差的微服务和接口,为后续优化提供方向。
  • 追踪性能分析(Tracing Performance Analysis)

    • 能够分析接口加载耗时情况,如 api/v1 接口经过网关和文章服务的时间,通过不同颜色区分各服务的加载时间,如紫色代表网关加载时间,蓝色代表文章服务加载时间。
    • 可以定位问题所在,比如发现是 spring mvc 方法导致接口慢,可进一步查看代码分析原因,还能展示数据库连接相关信息及查询的 SQL 语句,辅助分析性能问题。
      在这里插入图片描述
  • 拓扑图(Topology Graph):清晰呈现服务间调用关系,包括与数据库(如 MySQL、Redis)的调用关系,并且会将不健康的服务标红,方便直观了解服务架构健康状况和服务间的依赖关系,即使在服务数量较多的情况下也能清晰展示。

  • 告警(Alerting)

    • 具有默认告警规则,如过去十分钟内三分钟内服务平均响应时间超过一秒且超过三次,或过去十分钟内服务成功率低于 80%达两次等情况就会触发告警。
    • 支持自定义告警规则,且告警信息可通过多种方式(如发送邮件、短信、对接企业微信或钉钉)通知开发负责人,确保问题能及时被处理,保障线上服务的正常运行。

面试题回答思路

  • 首先表明采用 SkyWalking 对微服务进行监控。
  • 介绍 SkyWalking 的功能,包括它能够监控接口、服务和实例的状态,例如在压测等场景下可快速定位出慢的服务和接口,并对其进行分析和优化;强调其报警功能,当项目上线后,若出现问题可及时通知相关负责人,通过短信或邮件等方式,确保线上服务稳定运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/66931.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EasyExcel的应用

一、简单使用 引入依赖: 这里我们可以使用最新的4.0.2版本,也可以选择之前的稳定版本,3.1.x以后的版本API大致相同,新的版本也会向前兼容(3.1.x之前的版本,部分API可能在高版本被废弃)&…

【MySQL数据库】基础总结

目录 前言 一、概述 二、 SQL 1. SQL通用语法 2. SQL分类 3. DDL 3.1 数据库操作 3.2 表操作 4. DML 5. DQL 5.1 基础查询 5.2 条件查询 5.3 聚合函数 5.4 分组查询 5.5 排序查询 5.6 分页查询 6. DCL 6.1 管理用户 6.2 权限控制 三、数据类型 1. 数值类…

aws(学习笔记第二十三课) step functions进行开发(lambda函数调用)

aws(学习笔记第二十三课) 开发step functions状态机的应用程序 学习内容: step functions状态机的概念开发简单的step functions状态机 1. step functions状态机概念 官方说明文档和实例程序 AWS的官方给出了学习的链接和实例程序。使用SAM创建step functions 借…

安卓开发动画

1.gif图片动画 边缘会有锯齿 2.json动画 用lottie json文件动画 实现 Android Studio使用lottie,加载json文件,实现动画效果_android 加载json动画-CSDN博客 遇到的坑 1.不播放,可能因为设置了图片(跟动画一样的图片&#xf…

【Docker】入门教程

目录 一、Docker的安装 二、Docker的命令 Docker命令实验 1.下载镜像 2.启动容器 3.修改页面 4.保存镜像 5.分享社区 三、Docker存储 1.目录挂载 2.卷映射 四、Docker网络 1.容器间相互访问 2.Redis主从同步集群 3.启动MySQL 五、Docker Compose 1.命令式安装 …

算法练习7——拦截导弹的系统数量求解

题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。 假设某天雷达捕捉到敌国的导弹来袭。由于该系统还在试用…

如何使用高性能内存数据库Redis

一、详细介绍 1.1、Redis概述 Redis(Remote Dictionary Server)是一个开源的、内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。Redis支持多种类型的数据结构,如字符串(strings)、哈希&am…

【Linux系列】`find / -name cacert.pem` 文件搜索

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

最大拿牌的得分

假设有个游戏,一列牌有不同分数,但是只能从两头拿 ,拿到最后分数最高的人获胜,假设两个人都是聪明人,求最后的最高分是多少? 思路:递归算法,一个人拿左边牌,另一个人的得…

UE材质Fab Megascans

2025年Bridge里已经不能直接导入资产了,显示GET IT ON FAB 只能在Fab中导入资产, 纹理打包技术从RMA改成了ORM O:AO 环境光遮蔽 R:Roughness 粗糙度 M:Metallic 金属度 在Fab中找到材质,点击Add to P…

前后端本地启动

一、后端启动 1. 项目导入 目标:将后端代码从远程仓库(GitHub)导入到开发工具中(例如 IntelliJ IDEA),方便我们对项目进行编辑和运行。 步骤: 打开 IntelliJ IDEA(下文简称 IDEA…

ansible 检查目录大小

检查目录大小 worker_du.yml# ansible-playbook -i hosts worker_du.yml --limit w10 --- - name: 检查目录大小hosts:- w10 # 可以根据需要修改目标主机# 可以添加更多主机tasks:- name: 获取每台主机 /root/worker01 目录大小shell: du -sh /root/worker01/ | awk {print …

【NP-hard问题】NP与NP-hard问题通俗解释

最近在研究NP-hard问题,讲一下自己的对于NP与NP-hard问题的通俗解释 一、NP-Hard 问题是什么意思? 什么是 NP? NP 问题可以理解为「检查答案很容易,但找到答案很难」。 举个例子: 假设你在一个迷宫里,…

【黑灰产】假钱包推广套路

假钱包推广产业链研究 市面上钱包的主要推广方式: 1,竞价(搜索引擎),误导客户为真正官方钱包从而完成下载使用 优点:精准,客户大 缺点:竞价户容易挂,投资大 2&#xff0…

C#范围表达式,模式匹配,逆变和协变--11

目录 一.范围表达式 1.概述 2.语法 3.代码示例 4.实现原理 5.应用场景 二.模式匹配 1.概述 2.核心概念 3.常用模式类型 4.Switch表达式 5.使用示例 6.优势 三.逆变和协变 1.概述 2.泛型类型参数的变性 3.协变示例 4.逆变示例 5.注意事项 6.应用场景 总结 一…

ollama教程(window系统)

前言 在《本地大模型工具哪家强?对比Ollama、LocalLLM、LM Studio》一文中对比了三个常用的大模型聚合工具优缺点,本文将详细介绍在window操作系统下ollama的安装和使用。要在 Windows 上安装并使用 Ollama,需要依赖 NVIDIA 显卡&#xff0c…

代码随想录 字符串 test1

344. 反转字符串 - 力扣&#xff08;LeetCode&#xff09; 依次交换首尾。 class Solution { public:void reverseString(vector<char>& s) {int h,l;//首尾指针for(h 0, l s.size() - 1; h < s.size() / 2; h, l--){swap(s[h], s[l]);}return ;} };

[论文阅读] (35)TIFS24 MEGR-APT:基于攻击表示学习的高效内存APT猎杀系统

《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座&#xff0c;并分享给大家&#xff0c;希望您喜欢。由于作者的英文水平和学术能力不高&#xff0c;需要不断提升&#xff0c;所以还请大家批评指正&#xff0c;非常欢迎大家给我留言评论&#xff0c;学术路上期…

半导体数据分析: 玩转WM-811K Wafermap 数据集(三) AI 机器学习

前面我们已经通过两篇文章&#xff0c;一起熟悉了WM-811K Wafermap 数据集&#xff0c;并对其中的一些数据进行了调用&#xff0c;生成了一些统计信息和图片。今天我们接着继续往前走。 半导体数据分析&#xff1a; 玩转WM-811K Wafermap 数据集&#xff08;二&#xff09; AI…

BGP 泄露

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 目录 1. BGP 是什么&#xff1f; 2. 什么是 BGP 泄露&#xff1f; 3. 今天发生了什么&#xff1f; 4. 正常和被劫持状态下的路由示意图 5. 受影响区域 6. 责任在谁&#xff1f; 7. 有办法避免这…