服务挂了,怎么自动恢复?

简介: 架构设计上,避免单点,使用故障自动转移固然能够保证系统的高可用,是否还有其他的方案,让挂掉的服务自动启动呢,这里给大伙推荐一个常见的运维工具 supervisor。

大家或许都碰到过这样的情况:

  • tomcat挂了,站点应用访问不了
  • service出core了,服务挂了

架构设计上,避免单点,使用故障自动转移固然能够保证系统的高可用,是否还有其他的方案,让挂掉的服务自动启动呢,这里给大伙推荐一个常见的运维工具 supervisor。

画外音:supervisor是很常见的运维工具,以下几个小问题旨在让不熟悉的同学简单了解相关原理,献丑了。

supervisor是什么?

答:用Python开发的通用的进程管理工具。

supervisor有什么用?

答:supervisor能把一个普通进程变为后台daemon进程,并监控进程状态,在进程异常退出时能够自动重启(或者告警),同时还提供一些相关的管理功能。

supervisor是怎么做到的?

答:supervisor通过fork/exec的方式,把被管理的进程当作其子进程来启动,在被管理的子进程异常退出时(例如tomcat出异常挂掉,或者服务出core挂掉,或者收到异常信号挂掉),作为父进程可以获取相关信息,以选择后续如何处理。

之前没用过supervisor,这玩意是否靠谱?

答:额,supervisor诞生10年以上了,绝对靠谱,绝大部分运维同学都熟知它。

作为程序员,了解一些运维的知识有用么?

答:额,知道“&”与“nohup”的区别,对写程序可能没帮助,但对理解整个技术体系及思路肯定是有好处的。

希望没有浪费这一分钟。

调研:“&”与“nohup”的区别是啥呀?

目录
相关文章
|
3月前
|
弹性计算 Linux Shell
宕机自动恢复服务
在服务或脚本运行过程中,可能会因为程序异常、服务器重启或掉电等原因停止运行,导致业务受损。通过使用云助手插件 `ecs-tool-servicekeepalive`,可以在服务或脚本被中断时快速恢复运行,确保其可靠性和持续性。该插件基于 Linux 系统的 systemd service 实现,用户只需输入启动命令即可自动生成 systemd service 配置,无需手动配置。具体实践包括启动插件、查看配置状态及取消自恢复等功能。
|
4月前
|
运维 监控 定位技术
故障转移和自动恢复
故障转移和自动恢复
164 1
|
4月前
|
运维 监控 安全
自动恢复机制在哪些情况下可能无法正常工作
自动恢复机制在哪些情况下可能无法正常工作
|
5月前
|
运维 监控 Kubernetes
中间件故障转移自动切换
【7月更文挑战第25天】
51 2
|
缓存 容灾 NoSQL
变形记---容灾恢复 ,异常崩溃引发服务器丢档或无法正常运行
最近我给M部门面试服务器主程序开发的职位,我只问他们的架构设计经验,我发现相当一部分5-12年“本应该有足够开发经验”的开发组长,或开发主程序缺乏设计,缺乏容错,缺乏创新,比如一些服务器宕机如何崩溃拉起恢复玩家数据,数据库的异步线程读写如何避免被其他线程写回呢,至少目前能听到合理方案的面试者的回答不多,这也是我想写这篇文章的出发点,以此来分享给大家, 不仅仅是为了应付面试,更是解决实际问题的一种思路。 如题,举例说明:游戏服务器(或者其他业务服务器)正常运行中出现了异常崩溃,可能是异常断电引发,可能是云服务商的软硬件问题引发,这种情况下,你们的服务器架构有没有做灾难恢复处理? 使得
|
监控
一个 datanode 宕机,恢复流程
一个 datanode 宕机,恢复流程
349 0
|
应用服务中间件 PHP nginx
记一次服务器重启后网站502的恢复过程
记一次服务器重启后网站502的恢复过程
293 0
我是如何完美解决WIN10崩溃无法自动恢复启动问题的
用U盘启动盘启动电脑,检查硬盘状态。确认硬盘状态良好。但是我注意到一件事情,就是我的c盘盘符下不是启动盘内容了;之前C盘下启动盘内容盘符变成了G盘;
我是如何完美解决WIN10崩溃无法自动恢复启动问题的
|
Web App开发 安全
南方网、潘玮柏中文网被挂马 目前尚未恢复安全
据瑞星“云安全”系统监测,5月11日这天,“地球城-北京信息港”、“华夏军魂网”、“广东新闻联播•南方网”等网站被黑客挂马,用户浏览这些网站后,会感染木马病毒:Trojan.Win32.AvKiller.is(AV终结者),导致用户电脑中的杀毒软件被关闭,从而下载大量木马病毒。
1136 0
|
网络安全
F5实现一键备份和恢复功能
脚本内容:  root@ltm2:Active:Standalone] tmp # more backup1.sh #!/bin/sh cd /shared/tmp date_tag=`date +%Y%m%d%H%M%S` XXXX save sys  ucs    /shared/tmp/$HOSTNAME-$date_tag.
1184 0

热门文章

最新文章

相关实验场景

更多