如何实现 Spring Cloud 微服务挂掉之后自动重启?

本文由黑壳博客编写

本文来源如何实现Spring Cloud微服务挂掉之后自动重启?

每篇一笑

白雪公主结婚以后,身体一直不太好。王子请来医生诊断,发现她居然只剩下一个肾。王子悲伤地捧起她的脸:“亲爱的,你到底遭遇了什么?”白雪公主勉强露出一个微笑:“我在森林隐居时,有一天,一个巫婆敲开门对我说:“孩子,来个苹果吧

正文

微服务迟早是要部署在Linux系统上的,当网络不稳定就会挂掉,但是挂掉后手动去重启是十分麻烦的,我们的SC微服务虽然强大,应该还没有自行起死回生的本事,需要借助于外部命令来实现自动重启。下面就以Eureka为例配合shell脚本来实现自动重启。

1、启动一台Eureka:
java -jar clouddo-eureka-0.0.1-SNAPSHOT.jar

2、启动脚本:sh ./eureka.sh ,脚本文件和jar包放在同一个目录下。脚本内容:

#!/bin/sh
while :
do
run=$(ps -ef |grep "clouddo-eureka-0.0.1-SNAPSHOT" |grep -v "grep")
if [ "$run" ] ; then
echo "The service is alive!"
else
echo "The service was shutdown!"
echo "Starting service ..."
nohup java -jar $PWD/clouddo-eureka-0.0.1-SNAPSHOT.jar&
echo "The service was started!"
fi
sleep 10
done

注意:这里是在while死循环下,每隔10秒检测一次我们的eureka进程,如果进程存在则打印The service is alive!,如果进程失败就执行重启命令。当然,我们也可以指定这段shell开机运行,这样就可以省去很多事情。
3、杀掉服务:
将服务kill 掉 kill -9 xxx
4、服务自动重启
xxx 3829 9.4 14.3 2635272 294356 ? Sl 11:04 0:45 java -jar clouddo-blackdir-0.0.1-SNAPSHOT.jar

About

欢迎在评论写下你的程序员趣事~~

欢迎加入我们的小组织 ,大家都叫壳叔,期待你的到来。

欢迎关注公众号

微信公众号

这是我们的Group

黑壳家根据地 Q群:200408242

黑壳博客 blog.bhusk.com

E-mail:keshu@bhusk.com

本文由 黑壳博客的壳叔 创作或转载,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。

可自由转载、引用,但需署名作者且注明文章

留下你的脚步
推荐阅读