18 如何设计微服务才能防止宕机?

本文探讨了微服务中常见的问题——CPU使用率过高,提供了使用`top`和`jstack`等工具进行问题定位的方法。接着,从部署层面和代码编写角度提出了预防故障的策略,包括双机房部署、读写服务分离、线程池隔离等,以增强微服务的稳定性和高可用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在上一讲里,介绍了构建一个稳健的微服务的具体法则:防备上游、做好自己、怀疑下游, 并介绍了为什么要防备上游,以及一些防备上游的具体手段。

在本讲里,咱们一起来学习,做好微服务自身的设计和代码编写的常见手段。

微服务 CPU 被打满如何排查

在讲解具体有哪些手段可以用来构建一个更加稳固的微服务前,咱们先来看看如何高效、精准地定位问题。下面我将以设计不精良的微服务在线上最容易产生的问题:“机器 CPU 被打满”为例进行讲解。

这个问题也是面试中的高频话题,很多面试者能够回答出其中一二,但距离让面试官满意的答案还有一定距离,下面咱们就一起来看看详细的排查步骤。

一台机器上会部署一至多个进程,它们可能是一个或多个业务应用进程和多个其他工具类进程(比如日志收集进程、监控数据收集进程等)。大概率导致机器 CPU 飙升的是业务应用进程,但仍需准确定位才可得出结论。

在 Linux 系统里,可以使用top 命令进行定位, top 命令可以按进程维度输出各个进程占用的 CPU 的资源并支持排序,同时还会显示对应的进程名称、进程 ID 等信息。

根据排序,便可以确定占用 CPU 资源最高的进程,但此时仍然不知道是哪段代码导致的 CPU 飙升。所以可以在此进程基础之上,做进一步的定位。top 命令支持查看指定进程里的各线程的 CPU 占用量,命令格式为:top

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周壮

您的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值